# DP: gm2 updates up to 20191107 git diff de2034bc023a89e45bec67e54d2a63982080c316 674c0c7b7453b4998ac25ae57698be2818ec7352 | filterdiff --strip=2 --addoldprefix=a/src/ --addnewprefix=b/src/ --remove-timestamp | egrep -v '^(diff|index)' --- a/src/gcc/gm2/ChangeLog +++ b/src/gcc/gm2/ChangeLog @@ -1,4 +1,340 @@ -2019-08-05 Gaius Mulley +2019-11-05 Gaius Mulley + + * gm2/Make-lang.in: (gm2/gm2-libs/gm2-libs-target.h) + removed. (gm2/gm2-libs-iso/%.o) replaced gm2-libs-target + with gm2-libs-host.h. (gm2/gm2-libs/gm2-libs-host.h) + pass --libdir, --libexecdir to configure. + (build-libs-min) removed. + (archive-libs-min) removed. + (build-libs) removed. + (archive-libs) removed. + (build-compiler) removed. + (gm2/gm2-libs/libgm2.a) removed. + (build-libs-iso) removed. + (archive-libs-iso) removed. + (build-libs-ulm) removed. + (archive-libs-ulm) removed. + (build-libs-pim) removed. + (archive-libs-pim) removed. + (build-libs-coroutines) removed. + +2019-11-04 Gaius Mulley + + * gm2/Make-lang.in: (gm2.all.cross) added + plugin/m2rte$(exeext).so as a dependency. + * gm2/gm2-libs/config-host.in: (AC_CHECK_HEADERS) + quote all header files. + * gm2/Make-lang.in: (gm2.all.cross) added + $(GM2_LINK_TOOLS) as dependencies. + +2019-10-30 Gaius Mulley + + * gm2/Make-lang.in: pruned old comments. (GM2_DIRS) + removed. All directory targets are tested before being created. + * gm2/config-lang.in: directory creation moved into configure. + (fixes a bug reported by Matthias Klose) where make install + would relink cc1gm2. + +2019-10-29 Gaius Mulley + + * gm2/Make-lang.in: (gm2/gm2-gcc/%.o) added target dependencies. + (gm2/gm2-compiler-boot/m2flex.o) added target dependencies. + (gm2/gm2-pge-boot/$(SRC_PREFIX)libc.o) explicit rule. + (gm2/gm2-pge-boot/$(SRC_PREFIX)mcrts.o) explicit rule. + (gm2/gm2-pge-boot/$(SRC_PREFIX)UnixArgs.o) explicit rule. + (gm2/gm2-pge-boot/$(SRC_PREFIX)Selective.o) explicit rule. + (gm2/gm2-pge-boot/$(SRC_PREFIX)termios.o) explicit rule. + (gm2/gm2-pge/boot/$(SRC_PREFIX)SysExceptions.o) explicit rule. + (gm2/gm2-pge/boot/$(SRC_PREFIX)ldtoa.o) explicit rule. + (gm2/gm2-pge/boot/$(SRC_PREFIX)dtoa.o) explicit rule. + (gm2/gm2-pge/boot/$(SRC_PREFIX)wrapc.o) explicit rule. + (gm2/gm2-pge/boot/$(SRC_PREFIX)SYSTEM.o) explicit rule. + (gm2/gm2-pge/boot/$(SRC_PREFIX)errno.o) explicit rule. + (gm2/gm2-pge/boot/$(SRC_PREFIX)pth.o) explicit rule. + * testsuite/gm2/iso/run/pass/unbounded.mod: added many + more asserts. + * gm2/Make-lang.in: (gm2/gm2-gcc/%.o) added MCDEPS LIBDEPS. + (gm2/gm2-pge-boot/$(SRC_PREFIX)%.o) place C file into + gm2/gm2-pge-boot. (gm2/gm2-pge-boot/%.o) place C file into + gm2/gm2-pge-boot. + * gm2/Make-lang.in: (gm2.install-plugin) removed dependancy to + plygin/m2rte$(exeext).so. + +2019-10-23 Gaius Mulley + + * gm2/mc-boot/GArgs.c: regenerated. + * gm2/mc-boot/GCmdArgs.c: regenerated. + * gm2/mc-boot/GDebug.c: regenerated. + * gm2/mc-boot/GDynamicStrings.c: regenerated. + * gm2/mc-boot/GEnvironment.c: regenerated. + * gm2/mc-boot/GFIO.c: regenerated. + * gm2/mc-boot/GFormatStrings.c: regenerated. + * gm2/mc-boot/GIO.c: regenerated. + * gm2/mc-boot/GIndexing.c: regenerated. + * gm2/mc-boot/GM2EXCEPTION.c: regenerated. + * gm2/mc-boot/GM2RTS.c: regenerated. + * gm2/mc-boot/GNumberIO.c: regenerated. + * gm2/mc-boot/GPushBackInput.c: regenerated. + * gm2/mc-boot/GRTExceptions.c: regenerated. + * gm2/mc-boot/GRTco.h: regenerated. + * gm2/mc-boot/GRTint.c: regenerated. + * gm2/mc-boot/GSFIO.c: regenerated. + * gm2/mc-boot/GStdIO.c: regenerated. + * gm2/mc-boot/GStrCase.c: regenerated. + * gm2/mc-boot/GStrIO.c: regenerated. + * gm2/mc-boot/GStrLib.c: regenerated. + * gm2/mc-boot/GStringConvert.c: regenerated. + * gm2/mc-boot/GSysStorage.c: regenerated. + * gm2/mc-boot/GTimeString.c: regenerated. + * gm2/mc-boot/Galists.c: regenerated. + * gm2/mc-boot/Gdecl.c: regenerated. + * gm2/mc-boot/Gkeyc.c: regenerated. + * gm2/mc-boot/Glists.c: regenerated. + * gm2/mc-boot/GmcComment.c: regenerated. + * gm2/mc-boot/GmcComp.c: regenerated. + * gm2/mc-boot/GmcDebug.c: regenerated. + * gm2/mc-boot/GmcError.c: regenerated. + * gm2/mc-boot/GmcFileName.c: regenerated. + * gm2/mc-boot/GmcLexBuf.c: regenerated. + * gm2/mc-boot/GmcMetaError.c: regenerated. + * gm2/mc-boot/GmcOptions.c: regenerated. + * gm2/mc-boot/GmcPreprocess.c: regenerated. + * gm2/mc-boot/GmcPretty.c: regenerated. + * gm2/mc-boot/GmcPrintf.c: regenerated. + * gm2/mc-boot/GmcQuiet.c: regenerated. + * gm2/mc-boot/GmcSearch.c: regenerated. + * gm2/mc-boot/GmcStack.c: regenerated. + * gm2/mc-boot/GmcStream.c: regenerated. + * gm2/mc-boot/Gmcp1.c: regenerated. + * gm2/mc-boot/Gmcp2.c: regenerated. + * gm2/mc-boot/Gmcp3.c: regenerated. + * gm2/mc-boot/Gmcp4.c: regenerated. + * gm2/mc-boot/Gmcp5.c: regenerated. + * gm2/mc-boot/GnameKey.c: regenerated. + * gm2/mc-boot/GsymbolKey.c: regenerated. + * gm2/mc-boot/Gvarargs.c: regenerated. + * gm2/mc-boot/Gwlists.c: regenerated. + * gm2/mc/decl.mod: (forceCompoundStatement) New boolean. + (doCompoundStmt) check whether a compound statement should be + forced. (doElsifC) check whether a compound statement should + be forced. + * testsuite/gm2/errors/fail/gm2.exp: (-Wunused-variable) added. + +2019-10-22 Gaius Mulley + + * gm2/gm2-gcc/m2expr.c: (append_digit) use temporary + variables to hold the intermediate results before testing + if they are less than the rhs. + * append_m2_digit: (append_digit) use temporary + variables to hold the intermediate results before testing + if they are less than the rhs. + * gm2/gm2-libs-ch/dtoa.c: (calcmaxsig) use memmove rather + than strncpy. (calcsign) use memmove rather + than strncpy. + * gm2/mc-boot-ch/Gdtoa.c: (calcmaxsig) use memmove rather + than strncpy. (calcsign) use memmove rather + than strncpy. + * libgm2/libpim/dtoa.c: (calcmaxsig) use memmove rather + than strncpy. (calcsign) use memmove rather + than strncpy. + +2019-10-10 Gaius Mulley + + * gm2/m2.flex: use time_t rather than long as the + parameter type casted to 0. + * gm2/lang.opt: frange, findex, fwholediv re-enabled. + * gm2/gm2-lang.c: frange, findex, fwholediv re-enabled. + * gm2/gm2-libs/Builtins.def: added boilerplate. + (longjmp) removed. (setjmp) removed. + Associated testsuite tests archived. + +2019-09-21 Gaius Mulley + + * gm2/mc/decl.mod: huge amount of changes as the + varient record for intrinsics were being used + inconsistently. + * gm2/mc-boot: regenerated. + +2019-09-18 Gaius Mulley + + * gm2/gm2-libs/FIO.mod: bugfix via valgrind, off by one + error corrected. + * (mc) regenerated. + +2019-09-04 Gaius Mulley + + * gm2/tools-src/def2texi.py: replaced print((x)) with + print(x). + +2019-09-04 Matthias Klose + + * gm2/examples/gravity/testsim.py: python2 to 3 conversion. + * gm2/examples/gravity/testsim2.py: python2 to 3 conversion. + * gm2/examples/pge/examples/boxes.py: python2 to 3 conversion. + * gm2/examples/pge/examples/exampleBoxes.py: python2 to 3 conversion. + * gm2/examples/pge/examples/triangle.py: python2 to 3 conversion. + * gm2/examples/pge/fig.py: python2 to 3 conversion. + * gm2/examples/pge/max2code.py: python2 to 3 conversion. + * gm2/examples/pge/mxmmaxima.py: python2 to 3 conversion. + * gm2/examples/pge/mxmout.py: python2 to 3 conversion. + * gm2/examples/pge/mxmparser.py: python2 to 3 conversion. + * gm2/examples/pge/mxmtree.py: python2 to 3 conversion. + * gm2/examples/pge/pge.py: python2 to 3 conversion. + * gm2/examples/pge/pgeplayback.py: python2 to 3 conversion. + * gm2/examples/pge/pgepygame.py: python2 to 3 conversion. + * gm2/examples/pge/t.py: python2 to 3 conversion. + * gm2/examples/server/client.py: python2 to 3 conversion. + * gm2/examples/swig/dual/testdual.py: python2 to 3 conversion. + * gm2/examples/swig/exceptions/stresstiny.py: python2 to 3 + conversion. + * gm2/examples/swig/exceptions/testtiny.py: python2 to 3 + conversion. + * gm2/examples/swig/full-strlib/testcopy.py: python2 to 3 + conversion. + * gm2/examples/swig/full-strlib/testequ.py: python2 to 3 + conversion. + * gm2/examples/swig/full-strlib/testlen.py: python2 to 3 + conversion. + * gm2/examples/swig/full-strlib/testnum.py: python2 to 3 + conversion. + * gm2/examples/swig/strlen/testlen.py: python2 to 3 conversion. + * gm2/examples/swig/strlib/testlen.py: python2 to 3 conversion. + * gm2/examples/swig/tiny/testtiny.py: python2 to 3 conversion. + * gm2/tools-src/array2index.py: python2 to 3 conversion. + * gm2/tools-src/def2texi.py: python2 to 3 conversion. + * gm2/tools-src/gensum.py: python2 to 3 conversion. + * gm2/tools-src/tidydates.py: python2 to 3 conversion. + * gm2/www/tools/texi2tr/src/navigation.py: python2 to 3 conversion. + * gm2/www/tools/texi2tr/src/outputdev.py: python2 to 3 conversion. + * gm2/www/tools/texi2tr/src/texi2tr.py: python2 to 3 conversion. + * gm2/Make-lang.in: use python3 rather than python2. + * gm2/examples/gravity/Makefile.in: use python3 rather than + python2. + * gm2/examples/gravity/README: reference python3. + * gm2/examples/pge/Makefile.in: use python3 rather than python2. + * gm2/examples/pge/debugthis: use python3 rather than python2. + * gm2/examples/pge/max2code: use python3 rather than python2. + * gm2/examples/pge/runfig: use python3 rather than python2. + * gm2/examples/pge/runthis: use python3 rather than python2. + * gm2/examples/swig/dual/Makefile.in: use python3 rather than + python2. + * gm2/examples/swig/exceptions/Makefile.in: use python3 rather + than python2. + * gm2/examples/swig/full-strlib/Makefile.in: use python3 rather + than python2. + * gm2/examples/swig/strio/Makefile.in: use python3 rather than + python2. + * gm2/examples/swig/strlen/Makefile: use python3 rather than + python2. + * gm2/examples/swig/strlib/Makefile.in: use python3 rather than + python2. + * gm2/examples/swig/tiny/Makefile.in: use python3 rather than + python2. + * gm2/www/Makefile.in: use python3 rather than python2. + * gm2/examples/gravity/testsim.py: python2 to 3 conversion. + * gm2/examples/gravity/testsim2.py: python2 to 3 conversion. + * gm2/examples/pge/examples/boxes.py: python2 to 3 conversion. + * gm2/examples/pge/examples/exampleBoxes.py: python2 to 3 + conversion. + * gm2/examples/pge/examples/triangle.py: python2 to 3 + conversion. + * gm2/examples/pge/fig.py: python2 to 3 conversion. + * gm2/examples/pge/max2code.py: python2 to 3 conversion. + * gm2/examples/pge/pge.py: python2 to 3 conversion. + * gm2/examples/pge/pgeplayback.py: python2 to 3 conversion. + * gm2/examples/pge/pgepygame.py: python2 to 3 conversion. + * gm2/examples/pge/t.py: python2 to 3 conversion. + * gm2/examples/server/client.py: python2 to 3 conversion. + * gm2/examples/swig/full-strlib/testequ.py: python2 to 3 + conversion. + * gm2/tools-src/array2index.py: python2 to 3 conversion. + * gm2/tools-src/def2texi.py: python2 to 3 conversion. + * gm2/tools-src/gensum.py: python2 to 3 conversion. + * gm2/tools-src/tidydates.py: python2 to 3 conversion. + * gm2/www/tools/texi2tr/src/navigation.py: python2 to 3 + conversion. + * gm2/www/tools/texi2tr/src/outputdev.py: python2 to 3 + conversion. + * gm2/www/tools/texi2tr/src/texi2tr.py: python2 to 3 + conversion. + * gm2/tools-src/def2texi.py: python2 to 3 conversion. + +2019-09-04 Gaius Mulley + + * gm2/examples/pge/pge2d.py: removed. + * gm2/Make-lang.in: convert source build rules to use + $(STAMP). (gm2/gm2version.c) rewritten for $(STAMP). + (gm2.pod) rewritten for $(STAMP). + (gm2/gm2-libs.texi) rewritten for $(STAMP). + (gm2/gm2-ebnf.texi) rewritten for $(STAMP). + (gm2/SYSTEM-pim.texi) rewritten for $(STAMP). + (gm2/SYSTEM-iso.texi) rewritten for $(STAMP). + (gm2/Builtins.texi) rewritten for $(STAMP). + (gm2/version.texi) rewritten for $(STAMP). + (gm2/gm2-libs-boot/pthdummy.o) removed $(MCDEPS). + +2019-08-22 Gaius Mulley + + * gm2/Make-lang.in: added $(srcdir) to prevent + race hazard in building from gm2/gm2-pge-boot/*c + files. + +2019-08-20 Gaius Mulley + + * gm2/Make-lang.in: use -p parameter for mkdir. + +2019-08-20 Matthias Klose + + * gm2/Make-lang.in: added dependancies for subdir + creation. + +2019-08-20 Gaius Mulley + + * gm2/tools-src/buildsyntax: removed function keyword + to be sh complient rather than bash. + * gm2/tools-src/makeSystem: removed function keyword + to be sh complient rather than bash. + * gm2/tools-src/makeconfigure: removed function keyword + to be sh complient rather than bash. + * gm2/tools-src/makeversion: removed function keyword + to be sh complient rather than bash. Also use = rather + than ==. + +2019-08-16 Gaius Mulley + + * gm2/Make-lang.in: (gm2/pge) added -lgcov. + (gm2/pg) added -lgcov. (gm2/ppg) + added -lgcov. (gm2/boot-bin/mc) added -lgcov. + +2019-08-13 Gaius Mulley + + * gm2/Make-lang.in: (check-gm2) removed, use inbuilt + version. (lang_checks) include check-gm2. + * testsuite/gm2/calling-c/datatypes/unbounded/run/pass/gm2.exp: + use rootme and rootme/gm2 rather than tmpdir. + * testsuite/gm2/examples/callingC/run/pass/gm2.exp: + use rootme and rootme/gm2 rather than tmpdir. + * testsuite/gm2/exceptions/run/pass/gm2.exp: + use rootme and rootme/gm2 rather than tmpdir. + * testsuite/gm2/extensions/run/pass/gm2.exp: + use rootme and rootme/gm2 rather than tmpdir. + * testsuite/gm2/imports/run/pass/gm2.exp: + use rootme and rootme/gm2 rather than tmpdir. + * testsuite/gm2/linking/libarchive/pass/gm2.exp: + use rootme and rootme/gm2 rather than tmpdir. + * testsuite/gm2/pim/run/pass/gm2.exp: + use rootme and rootme/gm2 rather than tmpdir. + * testsuite/gm2/types/run/pass/gm2.exp: + use rootme and rootme/gm2 rather than tmpdir. + * testsuite/lib/gm2.exp: + use rootme and rootme/gm2 rather than tmpdir. + +2019-08-13 Gaius Mulley + + * gm2/lang-specs.h: added %d to the temporary + assembly file. + +2019-08-12 Gaius Mulley * New branch gcc_9_2_0_gm2 * gm2/configure.in: changed release number to 1.9.2. --- a/src/gcc/gm2/Make-lang.in +++ b/src/gcc/gm2/Make-lang.in @@ -18,24 +18,6 @@ #along with GCC; see the file COPYING3. If not see #. -# This file provides the language dependent support in the main Makefile. -# Each language makefile fragment must provide the following targets: -# -# foo.all.build, foo.all.cross, foo.start.encap, foo.rest.encap, -# foo.info, foo.dvi, -# foo.install-normal, foo.install-common, foo.install-info, foo.install-man, -# foo.uninstall, -# foo.mostlyclean, foo.clean, foo.distclean, foo.extraclean, -# foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4 -# -# where `foo' is the name of the language. -# -# It should also provide rules for: -# -# - making any compiler driver (eg: gm2) -# - the compiler proper (eg: cc1gm2) -# - define the names for selecting the language in LANGUAGES. - # QUIAT=@ GM2_MAKE_DEBUG= @@ -107,7 +89,7 @@ gm2 m2 modula-2 modula2: xgm2$(exeext) xgcc$(exeext) cc1gm2$(exeext) \ GM2_PROG_DEP=xgm2$(exeext) xgcc$(exeext) cc1gm2$(exeext) -TEXI2HTML=python $(srcdir)/gm2/www/tools/texi2tr/src/texi2tr.py +TEXI2HTML=python3 $(srcdir)/gm2/www/tools/texi2tr/src/texi2tr.py include gm2/config-make LIBSTDCXX=../$(TARGET_SUBDIR)/libstdc++-v3/src/.libs/libstdc++.a @@ -127,8 +109,11 @@ gm2/gm2spec.o: $(srcdir)/gm2/gm2spec.c $(SYSTEM_H) $(GCC_H) $(CONFIG_H) \ -DPREFIX=\"$(prefix)\" \ -c $(srcdir)/gm2/gm2spec.c $(OUTPUT_OPTION)) -gm2/gm2version.c: force +gm2/gm2version.c: gm2version-check; @true + +gm2version-check: cd gm2 ; bash ../$(srcdir)/gm2/tools-src/makeversion -p ../$(srcdir) + $(STAMP) gm2version-check gm2version.o: gm2/gm2version.c (SHLIB_LINK='$(SHLIB_LINK)' \ @@ -145,7 +130,7 @@ GM2_OBJS = $(GCC_OBJS) gm2/gm2version.o version.o \ # Create the compiler driver for xgm2. xgm2$(exeext): $(GM2_OBJS) $(EXTRA_GCC_OBJS) libcommon-target.a $(LIBDEPS) \ - $(GM2_DIRS) gm2/gm2config.h + gm2/gm2config.h +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \ $(GM2_OBJS) $(EXTRA_GCC_OBJS) libcommon-target.a \ $(EXTRA_GCC_LIBS) $(LIBS) @@ -166,47 +151,16 @@ GM2_LIB_DIR_LOG= $(DESTDIR)$(libsubdir)/gm2/logitech GM2_LIB_DIR_PCO= $(DESTDIR)$(libsubdir)/gm2/pim-coroutine GM2_LIB_DIR_ISO= $(DESTDIR)$(libsubdir)/gm2/iso GM2_LIB_DIR_MIN= $(DESTDIR)$(libsubdir)/gm2/min -GM2_DIRS = $(objdir)/gm2/gm2-compiler-boot \ - $(objdir)/gm2/gm2-libs-boot \ - $(objdir)/gm2/gm2-ppg-boot \ - $(objdir)/gm2/gm2-pge-boot \ - $(objdir)/gm2/gm2-pg-boot \ - $(objdir)/gm2/gm2-tools-boot \ - $(objdir)/gm2/gm2-tools \ - $(objdir)/gm2/gm2-libiberty \ - $(objdir)/gm2/gm2-gcc \ - $(objdir)/gm2/gm2-auto \ - $(objdir)/gm2/gm2-compiler \ - $(objdir)/gm2/gm2-libs \ - $(objdir)/gm2/gm2-libs-iso \ - $(objdir)/gm2/gm2-compiler-paranoid \ - $(objdir)/gm2/gm2-libs-paranoid \ - $(objdir)/gm2/gm2-compiler-verify \ - $(objdir)/gm2/boot-bin \ - $(objdir)/gm2/ulm-lib-gm2 \ - $(objdir)/gm2/ulm-lib-gm2/sys \ - $(objdir)/gm2/ulm-lib-gm2/std \ - $(objdir)/gm2/gm2-libs-pim \ - $(objdir)/gm2/gm2-libs-coroutines \ - $(objdir)/gm2/gm2-libs-min \ - $(objdir)/gm2/mc-boot \ - $(objdir)/gm2/mc-boot-ch \ - $(objdir)/gm2/mc-boot-gen \ - $(objdir)/plugin \ - stage1/gm2 stage2/gm2 stage3/gm2 stage4/gm2 # gt-gm2-gm2-lang.h gtype-gm2.h gt-gm2-gccgm2.h gt-gm2-m2builtins.h gt-gm2-m2except.h: s-gtype; @true # Build hooks: -gm2.all.cross: xgm2-cross$(exeext) stage1/gm2/cc1gm2$(exeext) \ - $(GM2_LINK_TOOLS) \ - plugin/m2rte$(exeext).so +gm2.all.cross: xgm2-cross$(exeext) plugin/m2rte$(exeext).so $(GM2_LINK_TOOLS) -gm2.start.encap: xgm2$(exeext) stage1/gm2/cc1gm2$(exeext) \ - $(GM2_LINK_TOOLS) \ - plugin/m2rte$(exeext).so +gm2.start.encap: xgm2$(exeext) plugin/m2rte$(exeext).so $(GM2_LINK_TOOLS) gm2.rest.encap: + gm2.info: $(objdir)/gm2/gm2.info gm2.generated-manpages: gm2.man @@ -226,115 +180,138 @@ gm2.ps: gm2.dvi gm2.pdf: gm2.ps gs -q -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=$@ $< +.INTERMEDIATE: gm2.pod + +gm2.pod: gm2/gm2.texi $(TEXISRC) + -$(TEXI2POD) -I $(objdir)/gm2 -D gm2 < $< > $@ + $(objdir)/gm2/gm2.info: $(TEXISRC) $(MAKEINFO) -I$(objdir)/gm2 -o $(objdir)/gm2/gm2.info $(srcdir)/gm2/gm2.texi $(objdir)/gm2/images/gnu.eps: $(srcdir)/gm2/images/gnupng - mkdir -p gm2/images + test -d gm2/images || mkdir -p gm2/images if [ -f $(srcdir)/gm2/images/gnu.eps ] ; then \ cp $(srcdir)/gm2/images/gnu.eps $@ ; \ else \ pngtopnm $< | pnmtops -noturn > $@ ; \ fi -gm2/gm2-libs.texi: gm2/SYSTEM-pim.texi gm2/SYSTEM-iso.texi gm2/Builtins.texi $(objdir)/gm2/gm2-libs-coroutines/SYSTEM.def - python $(srcdir)/gm2/tools-src/def2texi.py -uLibraries -s$(srcdir)/gm2 -b$(objdir)/gm2 > $(objdir)/gm2/gm2-libs.texi +gm2/gm2-libs.texi: gm2-libs.texi-check; @true + +gm2-libs.texi-check: gm2/SYSTEM-pim.texi gm2/SYSTEM-iso.texi gm2/Builtins.texi $(objdir)/gm2/gm2-libs-coroutines/SYSTEM.def gm2/gm2-ebnf.texi + python3 $(srcdir)/gm2/tools-src/def2texi.py -uLibraries -s$(srcdir)/gm2 -b$(objdir)/gm2 > $(objdir)/gm2/gm2-libs.texi + $(STAMP) gm2-libs.texi-check + +gm2/gm2-ebnf.texi: gm2-ebnf.texi-check; @true -gm2/gm2-ebnf.texi: gm2/gm2-auto gm2/ppg$(exeext) $(srcdir)/gm2/bnf/m2.bnf - ./gm2/ppg$(exeext) -c -p -t -f $(srcdir)/gm2/bnf/m2.bnf > $@ +gm2-ebnf.texi-check: gm2/gm2-auto gm2/ppg$(exeext) $(srcdir)/gm2/bnf/m2.bnf + ./gm2/ppg$(exeext) -c -p -t -f $(srcdir)/gm2/bnf/m2.bnf > gm2/gm2-ebnf.texi + $(STAMP) gm2-ebnf.texi-check -gm2/SYSTEM-pim.texi: $(objdir)/gm2/gm2-libs/SYSTEM.def +gm2/SYSTEM-pim.texi: SYSTEM-pim-texi-check; @true + +SYSTEM-pim-texi-check: $(objdir)/gm2/gm2-libs/SYSTEM.def $(srcdir)/gm2/tools-src/def2texi.py -b$(objdir)/gm2 -f$(objdir)/gm2/gm2-libs/SYSTEM.def > $(objdir)/gm2/SYSTEM-pim.texi + $(STAMP) SYSTEM-pim-texi-check + +gm2/SYSTEM-iso.texi: SYSTEM-iso.texi-check; @true -gm2/SYSTEM-iso.texi: $(objdir)/gm2/gm2-libs-iso/SYSTEM.def +SYSTEM-iso.texi-check: $(objdir)/gm2/gm2-libs-iso/SYSTEM.def $(srcdir)/gm2/tools-src/def2texi.py -b$(objdir)/gm2 -f$(objdir)/gm2/gm2-libs-iso/SYSTEM.def > $(objdir)/gm2/SYSTEM-iso.texi + $(STAMP) SYSTEM-iso.texi-check + +gm2/Builtins.texi: Builtins.texi-check; @true -gm2/Builtins.texi: gm2/gm2-libs/Builtins.def +Builtins.texi-check: gm2/gm2-libs/Builtins.def $(srcdir)/gm2/tools-src/def2texi.py -b./ -f$(srcdir)/gm2/gm2-libs/Builtins.def > $(objdir)/gm2/Builtins.texi + $(STAMP) Builtins.texi-check -gm2/version.texi: force +gm2/version.texi: gm2-version.texi-check; @true + +gm2-version.texi-check: cd gm2 ; bash ../$(srcdir)/gm2/tools-src/makeversion -t ../$(srcdir) + $(STAMP) gm2-version.texi-check $(objdir)/gm2/gm2-tools: - mkdir $@ + test -d $@ || mkdir -p $@ $(objdir)/gm2/gm2-tools-boot: - mkdir $@ + test -d $@ || mkdir -p $@ $(objdir)/gm2/gm2-compiler-boot: - mkdir $@ + test -d $@ || mkdir -p $@ $(objdir)/gm2/gm2-ppg-boot: - mkdir $@ + test -d $@ || mkdir -p $@ $(objdir)/gm2/gm2-pg-boot: - mkdir $@ + test -d $@ || mkdir -p $@ $(objdir)/gm2/gm2-pge-boot: - mkdir $@ + test -d $@ || mkdir -p $@ $(objdir)/gm2/gm2-libs-boot: - mkdir $@ + test -d $@ || mkdir -p $@ $(objdir)/gm2/gm2-libiberty: - mkdir $@ + test -d $@ || mkdir -p $@ $(objdir)/gm2/gm2-auto: - mkdir $@ + test -d $@ || mkdir -p $@ $(objdir)/gm2/gm2-gcc: - mkdir $@ + test -d $@ || mkdir -p $@ $(objdir)/gm2/gm2-compiler: - mkdir $@ + test -d $@ || mkdir -p $@ $(objdir)/gm2/gm2-libs: - mkdir $@ + test -d $@ || mkdir -p $@ $(objdir)/gm2/gm2-libs-iso: - mkdir $@ + test -d $@ || mkdir -p $@ $(objdir)/gm2/gm2-libs-min: - mkdir $@ + test -d $@ || mkdir -p $@ $(objdir)/gm2/gm2-compiler-paranoid: - mkdir $@ + test -d $@ || mkdir -p $@ $(objdir)/gm2/gm2-libs-paranoid: - mkdir $@ + test -d $@ || mkdir -p $@ $(objdir)/gm2/gm2-compiler-verify: - mkdir $@ + test -d $@ || mkdir -p $@ $(objdir)/gm2/boot-bin: - mkdir $@ + test -d $@ || mkdir -p $@ $(objdir)/gm2/ulm-lib-gm2: - mkdir $@ + test -d $@ || mkdir -p $@ -$(objdir)/gm2/ulm-lib-gm2/sys: - mkdir $@ +$(objdir)/gm2/ulm-lib-gm2/sys: $(objdir)/gm2/ulm-lib-gm2 + test -d $@ || mkdir -p $@ -$(objdir)/gm2/ulm-lib-gm2/std: - mkdir $@ +$(objdir)/gm2/ulm-lib-gm2/std: $(objdir)/gm2/ulm-lib-gm2 + test -d $@ || mkdir -p $@ $(objdir)/gm2/gm2-libs-pim: - mkdir $@ + test -d $@ || mkdir -p $@ $(objdir)/gm2/gm2-libs-coroutines: - mkdir $@ + test -d $@ || mkdir -p $@ stage1/gm2: - -mkdir -p stage1/gm2 + test -d $@ || mkdir -p $@ stage2/gm2: - -mkdir -p stage2/gm2 + test -d $@ || mkdir -p $@ stage3/gm2: - -mkdir -p stage3/gm2 + test -d $@ || mkdir -p $@ stage4/gm2: - -mkdir -p stage4/gm2 + test -d $@ || mkdir -p $@ # No gm2-specific selftests selftest-gm2: @@ -435,14 +412,14 @@ gm2.uninstall: -rm -rf $(bindir)/$(GM2_INSTALL_NAME) -rm -rf $(bindir)/$(GM2_CROSS_NAME) -gm2.install-plugin: plugin/m2rte$(exeext).so +gm2.install-plugin: rm -f $(DESTDIR)$(plugin_bindir)/m2rte$(exeext).so mkdir -p $(DESTDIR)$(plugin_bindir) $(INSTALL_PROGRAM) plugin/m2rte$(exeext).so $(DESTDIR)$(plugin_bindir)/m2rte$(exeext).so chmod a+x $(DESTDIR)$(plugin_bindir)/m2rte$(exeext).so plugin/m2rte$(exeext).so: $(srcdir)/gm2/plugin/m2rte.c $(TARGET_H) $(srcdir)/flags.h gtype-gm2.h - mkdir -p $(GM2_DIRS) + test -d $(objdir)/plugin || mkdir -p $(objdir)/plugin $(PLUGINCC) $(PLUGINCFLAGS) -fno-rtti -I. -I$(srcdir) -I$(srcdir)/gm2 -I$(srcdir)/../include -I$(srcdir)/../libcpp/include -Wall -Wno-literal-suffix -fPIC -c -o plugin/m2rte.o $(srcdir)/gm2/plugin/m2rte.c $(PLUGINCC) $(PLUGINCFLAGS) $(PLUGINLIBS) -fno-rtti plugin/m2rte.o -shared -o $@ @@ -458,7 +435,7 @@ gm2.mostlyclean: gm2.clean: -rm -f gm2/*.o -rm -f gm2/gm2-libs/config.* - -rm gm2/gm2-libs/gm2-libs-host.h gm2/gm2-libs/gm2-libs-target.h gm2/gm2config.h + -rm gm2/gm2-libs/gm2-libs-host.h gm2/gm2config.h -rm -f gm2/gm2-libs/autoscan.log -rm -f gm2.aux gm2.html gm2.dvi gm2.ps gm2.info gm2.log -rm -fr gm2/stage? @@ -566,18 +543,7 @@ SO=-O0 -g -fPIC # Language-specific object files for the gm2 compiler. -# rationale: -# -# we build gm2 twice. The first time the Modula-2 sources are -# converted into C via mc. The resulting compiler and utilities are -# placed into stage1/gm2 directories. Then this stage1 compiler is -# used to build the stage2 compiler which will be installed on the -# host as part of `make install'. Debugging the stage2 compiler is -# much prefered as the executable contains debugging info relating -# directly to the Modula-2 source. - - # the C implementation module bridging the Modula-2 -> GCC -GM2_C_OBJS = gm2/gm2-lang.o \ +GM2_C_OBJS = gm2/gm2-lang.o \ gm2/stor-layout.o \ gm2/m2pp.o \ gm2/gm2-gcc/m2assert.o \ @@ -598,7 +564,6 @@ GM2_C_OBJS = gm2/gm2-lang.o \ gm2/gm2-gcc/init.o GM2_LIBS = gm2/gm2-compiler/gm2.a ../$(target_subdir)/libgm2/libpim/.libs/libgm2.a gm2/gm2-libs-boot/choosetemp.o -# gm2/gm2-compiler/gm2.a gm2/gm2-libs/libgm2.a # the final Modula-2 front end GM2_LIBS_BOOT = gm2/gm2-compiler-boot/gm2.a \ gm2/gm2-libs-boot/libgm2.a GM2_LIBS_PARANOID = gm2/gm2-compiler-paranoid/gm2.a \ @@ -640,9 +605,10 @@ stage2/gm2/cc1gm2$(exeext): stage1/gm2/cc1gm2$(exeext) gm2/gm2-compiler/m2flex.o $(BACKEND) $(LIBS) \ $(BACKENDLIBS) $(LIBSTDCXX) -lm -stage1/gm2/cc1gm2$(exeext): $(GM2_DIRS) xgm2$(exeext) gm2/gm2-compiler-boot/m2flex.o \ +stage1/gm2/cc1gm2$(exeext): gm2/gm2-compiler-boot/m2flex.o \ $(P) $(GM2_C_OBJS) $(BACKEND) $(LIBDEPS) \ - $(GM2_LIBS_BOOT) $(MC_LIBS) plugin/m2rte$(exeext).so + $(GM2_LIBS_BOOT) $(MC_LIBS) + $(__BREAKPOINT) $(LINKER) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(GM2_C_OBJS) gm2/gm2-compiler-boot/m2flex.o \ attribs.o \ $(GM2_LIBS_BOOT) $(MC_LIBS) \ @@ -654,7 +620,7 @@ gm2-gcc/m2builtins.o : $(srcdir)/gm2/gm2-gcc/m2builtins.c $(CONFIG_H) $(TREE_H) gm2-gcc/m2except.o : $(srcdir)/gm2/gm2-gcc/m2except.c $(CONFIG_H) $(TREE_H) $(RTL_H) $(TARGET_H) $(srcdir)/flags.h gtype-gm2.h gt-gm2-m2except.h -gm2/gm2-gcc/%.o: $(srcdir)/gm2/gm2-gcc/%.c $(TARGET_H) +gm2/gm2-gcc/%.o: $(srcdir)/gm2/gm2-gcc/%.c $(MCDEPS) $(LIBDEPS) $(BUILD-BOOT-H) $(TIMEVAR_H) gm2/gm2config.h $(CONFIG_H) $(TREE_H) $(RTL_H) $(TARGET_H) $(srcdir)/flags.h gtype-gm2.h $(COMPILER) -c -g $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION) gm2/gm2-lang.o: $(srcdir)/gm2/gm2-lang.c $(CONFIG_H) $(TREE_H) $(RTL_H) $(TARGET_H) $(srcdir)/flags.h gt-gm2-gm2-lang.h @@ -998,7 +964,7 @@ gm2/gm2-libs-boot/%.o: $(srcdir)/gm2/gm2-libs/%.mod $(MCDEPS) $(BUILD-BOOT-H) gm2/gm2-libs-boot/$(SRC_PREFIX)%.h: $(srcdir)/gm2/gm2-libs/%.def $(MCDEPS) $(MC) -o=$@ $(srcdir)/gm2/gm2-libs/$*.def -gm2/gm2-libs-boot/pthdummy.o: $(srcdir)/gm2/gm2-libs-ch/pthdummy.c $(MCDEPS) gm2/gm2-libs/gm2-libs-host.h +gm2/gm2-libs-boot/pthdummy.o: $(srcdir)/gm2/gm2-libs-ch/pthdummy.c gm2/gm2-libs/gm2-libs-host.h $(CC) -c -DIN_GCC $(CFLAGS) -Igm2/gm2-libs -I$(srcdir)/gm2 -Igm2 -I. -Igm2/gm2-libs-boot $(INCLUDES) $< -o $@ gm2/gm2-libs-boot/wrapc.o: $(srcdir)/gm2/gm2-libs-ch/wrapc.c gm2/gm2-libs-boot/$(SRC_PREFIX)wrapc.h gm2/gm2-libs/gm2-libs-host.h @@ -1126,7 +1092,8 @@ gm2/gm2-tools/m2flex.o: gm2/gm2-compiler/m2flex.c $(BUILD-BOOT-H) $(TIMEVAR_H) -Igm2 -Igm2/gm2-compiler-boot -Igm2/gm2-libs-boot $< -o $@ gm2/gm2-compiler-boot/m2flex.o: gm2/gm2-compiler/m2flex.c $(BUILD-BOOT-H) $(TIMEVAR_H) \ - $(BUILD-LIBS-BOOT-H) gm2/gm2-compiler-boot/$(SRC_PREFIX)NameKey.h + $(BUILD-LIBS-BOOT-H) gm2/gm2-compiler-boot/$(SRC_PREFIX)NameKey.h \ + $(CONFIG_H) gm2/gm2config.h $(TARGET_H) $(COMPILER) -c -g $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ $(GM2GCC) $(INCLUDES) -I$(srcdir)/gm2 \ -Igm2 -Igm2/gm2-compiler-boot -Igm2/gm2-libs-boot $< -o $@ @@ -1150,8 +1117,11 @@ gm2/gm2-compiler-boot/M2Version.o: gm2/gm2-compiler-boot/M2Version.mod $(MCDEPS) $(MC) -o=gm2/gm2-compiler-boot/M2Version.c $< $(COMPILER) -c $(ALL_CPPFLAGS) $(GM2GCC) -I. -Igm2/gm2-libs-boot -Igm2/gm2-compiler-boot -Igm2/gm2-libiberty $(INCLUDES) gm2/gm2-compiler-boot/M2Version.c -o $@ -gm2/gm2-compiler-boot/M2Version.mod: +gm2/gm2-compiler-boot/M2Version.mod: M2Version-check; @true + +M2Version-check: cd gm2/gm2-compiler-boot ; bash ../../$(srcdir)/gm2/tools-src/makeversion -m ../../$(srcdir) + $(STAMP) M2Version-check # @@ -1218,7 +1188,7 @@ gm2/gm2-compiler/M2Version.mod: gm2/gm2-compiler/h2def.o: $(objdir)/gm2/gm2-compiler/h2def.mod $(XGM2_1) $(GM2_FLAGS) -c -B$(XGM2BUILD1) -I$(srcdir)/gm2/gm2-compiler -I$(srcdir)/gm2/gm2-libs -I$(srcdir)/gm2/gm2-gcc -I$(srcdir)/gm2/gm2-libiberty $< -o $@ -gm2/gm2-libs-iso/%.o: $(srcdir)/gm2/gm2-libs-iso/%.c gm2/gm2-libs/gm2-libs-target.h +gm2/gm2-libs-iso/%.o: $(srcdir)/gm2/gm2-libs-iso/%.c gm2/gm2-libs/gm2-libs-host.h $(CC) -DBUILD_GM2_LIBS_TARGET -DBUILD_GM2_LIBS -c $(CFLAGS) -Igm2/gm2-libs -I$(srcdir)/gm2 -Igm2/gm2-libs-boot $(INCLUDES) $< -o $@ gm2/gm2-libs-iso/%.o: $(srcdir)/gm2/gm2-libs-iso/%.mod @@ -1230,26 +1200,6 @@ gm2/gm2-libs-iso/%.o: $(srcdir)/gm2/gm2-libs-iso/%.mod # itself. # -gm2/gm2-libs/gm2-libs-target.h: - if echo $(INTERNAL_CFLAGS) | grep \\-DCROSS_COMPILE; then \ - echo "Configuring to build libraries using cross compiler" ; \ - CC="$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(ALL_CPPFLAGS) -I. -I$(srcdir) -isystem include -isystem ${SYSTEM_HEADER_DIR}"; \ - export CC; \ - $(SHELL) -c \ - '$(srcdir)/gm2/gm2-libs/config-target \ - --srcdir=$(srcdir)/gm2/gm2-libs \ - --target=$(target) \ - --program-suffix=$(exeext) \ - --includedir=${gcc_tooldir}/include' ; \ - else \ - echo "Configuring to build libraries using native compiler" ; \ - cd gm2/gm2-libs ; \ - $(SHELL) -c '../../$(srcdir)/gm2/gm2-libs/config-target \ - --srcdir=../../$(srcdir)/gm2/gm2-libs \ - --target=$(target) \ - --program-suffix=$(exeext)' ; \ - fi - gm2/gm2-libs/gm2-libs-host.h: echo "Configuring to build libraries using native compiler" ; \ cd gm2/gm2-libs ; \ @@ -1265,7 +1215,7 @@ gm2/gm2config.h: export AR ; \ RANLIB=`echo $(RANLIB_FOR_TARGET) | sed -e "s/^ //"` ; \ export RANLIB ; \ - $(SHELL) -c '../$(srcdir)/gm2/configure --srcdir=../$(srcdir)/gm2 --target=$(target) --program-suffix=$(exeext) --includedir=$(SYSTEM_HEADER_DIR)' ; \ + $(SHELL) -c '../$(srcdir)/gm2/configure --srcdir=../$(srcdir)/gm2 --target=$(target) --program-suffix=$(exeext) --includedir=$(SYSTEM_HEADER_DIR) --libdir=$(libdir) --libexecdir=$(libexecdir)' ; \ else \ $(SHELL) -c '../$(srcdir)/gm2/configure --srcdir=../$(srcdir)/gm2 --target=$(target) --program-suffix=$(exeext)' ; \ fi @@ -1307,127 +1257,17 @@ build-system: $(objdir)/gm2/gm2-libs-min/SYSTEM.def \ $(objdir)/gm2/gm2-libs-coroutines/SYSTEM.def endif -build-libs-min: $(GM2-LIBS-MIN-MODS:%.mod=gm2/gm2-libs-min/%.o) \ - $(GM2-LIBS-MIN-C:%.c=gm2/gm2-libs-min/%.o) \ - $(GM2-LIBS-MIN-MODS:%.mod=gm2/gm2-libs-min/O2/%.o) \ - $(GM2-LIBS-MIN-C:%.c=gm2/gm2-libs-min/O2/%.o) - -archive-libs-min: build-libs-min - $(AR_CREATE_FOR_TARGET) gm2/gm2-libs-min/libgm2min.a \ - $(GM2-LIBS-MIN-MODS:%.mod=gm2/gm2-libs-min/%.o) \ - $(GM2-LIBS-MIN-C:%.c=gm2/gm2-libs-min/%.o) - $(RANLIB_FOR_TARGET) gm2/gm2-libs-min/libgm2min.a - $(AR_CREATE_FOR_TARGET) gm2/gm2-libs-min/O2/libgm2min.a \ - $(GM2-LIBS-MIN-MODS:%.mod=gm2/gm2-libs-min/O2/%.o) \ - $(GM2-LIBS-MIN-C:%.c=gm2/gm2-libs-min/O2/%.o) - $(RANLIB_FOR_TARGET) gm2/gm2-libs-min/O2/libgm2min.a - -build-libs: gm2/gm2-libs/gm2-libs-host.h \ - $(GM2-LIBS-MODS:%.mod=gm2/gm2-libs/%.o) \ - $(GM2-LIBS-C:%.c=gm2/gm2-libs/%.o) - -archive-libs: build-libs - $(AR_CREATE_FOR_TARGET) gm2/gm2-libs/libgm2.a \ - $(GM2-LIBS-MODS:%.mod=gm2/gm2-libs/%.o) \ - $(GM2-LIBS-C:%.c=gm2/gm2-libs/%.o) - $(RANLIB_FOR_TARGET) gm2/gm2-libs/libgm2.a - build-compiler: $(GM2-COMP-MODS:%.mod=gm2/gm2-compiler/%.o) \ $(GM2-AUTO-MODS:%.mod=gm2/gm2-compiler/%.o) \ gm2/gm2-compiler/M2Version.o \ gm2/gm2-compiler/m2flex.o -gm2/gm2-libs/libgm2.a: build-libs - $(AR_FOR_TARGET) cr $@ $(GM2-LIBS-MODS:%.mod=gm2/gm2-libs/%.o) \ - $(GM2-LIBS-C:%.c=gm2/gm2-libs/%.o) - $(RANLIB) $@ - gm2/gm2-compiler/gm2.a: build-compiler xgm2$(exeext) $(AR_FOR_TARGET) cr $@ $(GM2-COMP-MODS:%.mod=gm2/gm2-compiler/%.o) \ gm2/gm2-compiler/M2Version.o \ $(GM2-AUTO-MODS:%.mod=gm2/gm2-compiler/%.o) $(RANLIB) $@ -build-libs-iso: $(GM2-LIBS-ISO-MODS:%.mod=gm2/gm2-libs-iso/%.o) \ - $(GM2-LIBS-ISO-C:%.c=gm2/gm2-libs-iso/%.o) - -archive-libs-iso: build-libs-iso - $(AR_CREATE_FOR_TARGET) gm2/gm2-libs-iso/libgm2iso.a \ - $(GM2-LIBS-ISO-MODS:%.mod=gm2/gm2-libs-iso/%.o) \ - $(GM2-LIBS-ISO-C:%.c=gm2/gm2-libs-iso/%.o) - $(RANLIB_FOR_TARGET) gm2/gm2-libs-iso/libgm2iso.a - -build-libs-ulm: $(GM2-LIBS-ULM-MODS-STD:%.mod=gm2/ulm-lib-gm2/std/%.o) \ - $(GM2-LIBS-ULM-MODS-SYS:%.mod=gm2/ulm-lib-gm2/sys/%.o) \ - gm2/ulm-lib-gm2/sys/SYSTEM.o - -archive-libs-ulm: build-libs-ulm - $(AR_CREATE_FOR_TARGET) gm2/ulm-lib-gm2/libgm2ulm.a \ - $(GM2-LIBS-ULM-MODS-STD:%.mod=gm2/ulm-lib-gm2/std/%.o) \ - $(GM2-LIBS-ULM-MODS-SYS:%.mod=gm2/ulm-lib-gm2/sys/%.o) \ - gm2/ulm-lib-gm2/sys/SYSTEM.o - $(RANLIB_FOR_TARGET) gm2/ulm-lib-gm2/libgm2ulm.a - -build-libs-pim: $(GM2-LIBS-PIM-MODS:%.mod=gm2/gm2-libs-pim/%.o) \ - gm2/gm2-libs-pim/Break.o - -archive-libs-pim: build-libs-pim - $(AR_CREATE_FOR_TARGET) gm2/gm2-libs-pim/libgm2pim.a \ - $(GM2-LIBS-PIM-MODS:%.mod=gm2/gm2-libs-pim/%.o) \ - gm2/gm2-libs-pim/Break.o - $(RANLIB_FOR_TARGET) gm2/gm2-libs-pim/libgm2pim.a - -build-libs-coroutines: $(GM2-LIBS-PIM-COR-MODS:%.mod=gm2/gm2-libs-coroutines/%.o) \ - gm2/gm2-libs-coroutines/KeyBoardLEDs.o - -archive-libs-coroutines: build-libs-coroutines - $(AR_CREATE_FOR_TARGET) gm2/gm2-libs-coroutines/libgm2pco.a \ - $(GM2-LIBS-PIM-COR-MODS:%.mod=gm2/gm2-libs-coroutines/%.o) \ - gm2/gm2-libs-coroutines/KeyBoardLEDs.o - $(RANLIB_FOR_TARGET) gm2/gm2-libs-coroutines/libgm2pco.a - -gm2/gm2-libs-pim/Break.o: gm2/gm2-libs-pim/Break.c - $(GCC_FOR_TARGET) -DBUILD_GM2_LIBS_TARGET -DBUILD_GM2_LIBS -Igm2/gm2-libs -c $(CFLAGS) $< -o $@ - -gm2/gm2-libs-coroutines/KeyBoardLEDs.o: gm2/gm2-libs-coroutines/KeyBoardLEDs.c - $(GCC_FOR_TARGET) -DBUILD_GM2_LIBS_TARGET -DBUILD_GM2_LIBS -Igm2/gm2-libs -c $(CFLAGS) $< -o $@ - -gm2/gm2-libs-coroutines/O2/KeyBoardLEDs.o: gm2/gm2-libs-coroutines/KeyBoardLEDs.c - $(GCC_FOR_TARGET) -DBUILD_GM2_LIBS_TARGET -DBUILD_GM2_LIBS $(O2) -Igm2/gm2-libs -c $(CFLAGS) $< -o $@ - -gm2/gm2-libs-coroutines/SO/KeyBoardLEDs.o: gm2/gm2-libs-coroutines/KeyBoardLEDs.c - $(GCC_FOR_TARGET) -DBUILD_GM2_LIBS_TARGET -DBUILD_GM2_LIBS $(SO) -Igm2/gm2-libs -c $(CFLAGS) $< -o $@ - -gm2/gm2-libs-coroutines/SO_O2/KeyBoardLEDs.o: gm2/gm2-libs-coroutines/KeyBoardLEDs.c - $(GCC_FOR_TARGET) -DBUILD_GM2_LIBS_TARGET -DBUILD_GM2_LIBS $(SO_O2) -Igm2/gm2-libs -c $(CFLAGS) $< -o $@ - -gm2/ulm-lib-gm2/sys/SYSTEM.o: gm2/ulm-lib-gm2/sys/SYSTEM.c - $(GCC_FOR_TARGET) -DBUILD_GM2_LIBS_TARGET -DBUILD_GM2_LIBS -c $(CFLAGS) $< -o $@ - -gm2/ulm-lib-gm2/sys/SYSTEM.c: - bash $(srcdir)/gm2/tools-src/createUlmSys gm2/gm2-libs/gm2-libs-host.h > $@ - -gm2/ulm-lib-gm2/sys/%.o: gm2/ulm-lib-gm2/sys/%.mod - $(XGM2_1) $(GM2_FLAGS) -c -B./stage1/gm2 -B./ -I$(srcdir)/gm2/ulm-lib-gm2/sys -I$(srcdir)/gm2/gm2-libs $< -o $@ - -gm2/ulm-lib-gm2/std/%.o: gm2/ulm-lib-gm2/std/%.mod - $(XGM2_1) $(GM2_FLAGS) -c -B./stage1/gm2 -B./ -I$(srcdir)/gm2/ulm-lib-gm2/std:$(srcdir)/gm2/ulm-lib-gm2/sys:$(srcdir)/gm2/gm2-libs $< -o $@ - -gm2/gm2-libs-pim/%.o: gm2/gm2-libs-pim/%.mod - $(XGM2_1) $(GM2_FLAGS) -c -B$(XGM2BUILD1) -B./ -Igm2/gm2-libs:$(srcdir)/gm2/gm2-libs:$(srcdir)/gm2/gm2-libs-pim $< -o $@ - -gm2/gm2-libs-coroutines/%.o: gm2/gm2-libs-coroutines/%.mod - $(XGM2_1) $(GM2_FLAGS) -c -B$(XGM2BUILD1) -B./ -I$(srcdir)/gm2/gm2-libs-coroutines:$(srcdir)/gm2/gm2-libs:$(srcdir)/gm2/gm2-libs-pim:$(srcdir)/gm2/gm2-libs-iso $< -o $@ - -gm2/gm2-libs-coroutines/O2/%.o: gm2/gm2-libs-coroutines/%.mod - $(XGM2_1) $(O2) $(GM2_FLAGS) -c -B$(XGM2BUILD1) -B./ -I$(srcdir)/gm2/gm2-libs-coroutines:$(srcdir)/gm2/gm2-libs:$(srcdir)/gm2/gm2-libs-pim:$(srcdir)/gm2/gm2-libs-iso $< -o $@ - -gm2/gm2-libs-coroutines/SO/%.o: gm2/gm2-libs-coroutines/%.mod - $(XGM2_1) $(SO) $(GM2_FLAGS) -c -B$(XGM2BUILD1) -B./ -I$(srcdir)/gm2/gm2-libs-coroutines:$(srcdir)/gm2/gm2-libs:$(srcdir)/gm2/gm2-libs-pim:$(srcdir)/gm2/gm2-libs-iso $< -o $@ - -gm2/gm2-libs-coroutines/SO_O2/%.o: gm2/gm2-libs-coroutines/%.mod - $(XGM2_1) $(SO_O2) $(GM2_FLAGS) -c -B$(XGM2BUILD1) -B./ -I$(srcdir)/gm2/gm2-libs-coroutines:$(srcdir)/gm2/gm2-libs:$(srcdir)/gm2/gm2-libs-pim:$(srcdir)/gm2/gm2-libs-iso $< -o $@ - gm2/gm2-libs-boot/libgm2.a: gm2/boot-bin/mc$(exeext) $(BUILD-LIBS-BOOT) $(AR) cr $@ $(GM2-LIBS-BOOT-MODS:%.mod=gm2/gm2-libs-boot/%.o) \ $(GM2-LIBS-BOOT-C:%.c=gm2/gm2-libs-boot/%.o) @@ -1480,7 +1320,7 @@ MCLINK=-g GM2SYS=/opt/gm2/lib/gcc/x86_64-linux-gnu/4.7.4/m2/pim GM2PATH=$(srcdir)/gm2/mc:$(GM2SYS):$(srcdir)/gm2:gm2/gm2-auto:$(srcdir)/gm2/gm2-libs -mc: $(GM2_DIRS) mc-clean mc-devel +mc: mc-clean mc-devel # @@ -1696,19 +1536,19 @@ BUILD-MC-BOOT-O = $(MC-LIB-BOOT-C:%.c=gm2/mc-boot/$(SRC_PREFIX)%.o) \ BUILD-MC-INTERFACE-O = $(MC-INTERFACE-C:%.c=gm2/mc-boot-ch/$(SRC_PREFIX)%.o) -$(objdir)/plugin: force - mkdir -p $@ +$(objdir)/plugin: + test -d $@ || mkdir -p $@ -$(objdir)/gm2/mc-boot: force - mkdir -p $@ +$(objdir)/gm2/mc-boot: + test -d $@ || mkdir -p $@ -$(objdir)/gm2/mc-boot-ch: force - mkdir -p $@ +$(objdir)/gm2/mc-boot-ch: + test -d $@ || mkdir -p $@ -$(objdir)/gm2/mc-boot-gen: force - mkdir -p $@ +$(objdir)/gm2/mc-boot-gen: + test -d $@ || mkdir -p $@ -mc-autogen: $(GM2_DIRS) mc-clean mc-devel \ +mc-autogen: mc-clean mc-devel \ $(BUILD-MC-BOOT-H) $(BUILD-MC-BOOT-C) \ $(BUILD-MC-BOOT-AUTO-C) cd gm2/mc-boot-gen ; for i in *.c ; do gcc -g -c -I../../$(srcdir)/gm2/mc-boot-ch $$i ; done @@ -1754,10 +1594,12 @@ gm2/mc-boot-ch/$(SRC_PREFIX)%.o: gm2/mc-boot-ch/$(SRC_PREFIX)%.c # files will be checked into git by the maintainer. # -mc-bootstrap: $(GM2_DIRS) mc-clean gm2/boot-bin/mc$(exeext) +mc-bootstrap: mc-clean gm2/boot-bin/mc$(exeext) gm2/boot-bin/mc$(exeext): $(BUILD-MC-BOOT-O) $(BUILD-MC-INTERFACE-O) gm2/mc-boot/main.o mcflex.o gm2/gm2-libs-boot/pthdummy.o - $(CC) -g -o $@ $(BUILD-MC-BOOT-O) $(BUILD-MC-INTERFACE-O) $(LDFLAGS) gm2/mc-boot/main.o mcflex.o gm2/gm2-libs-boot/pthdummy.o -lm + $(CC) -g -o $@ $(BUILD-MC-BOOT-O) $(BUILD-MC-INTERFACE-O) $(LDFLAGS) \ + gm2/mc-boot/main.o mcflex.o gm2/gm2-libs-boot/pthdummy.o -lm \ + -lgcov gm2/mc-boot/main.o: $(M2LINK) $(srcdir)/gm2/init/mcinit unset CC ; $(M2LINK) -s --gcc --exit --name mainmcinit.c $(srcdir)/gm2/init/mcinit @@ -2104,7 +1946,7 @@ gm2/gm2-ppg-boot/$(SRC_PREFIX)%.o: $(srcdir)/gm2/gm2-compiler/%.mod $(MCDEPS) $( -I$(srcdir)/gm2/mc-boot-ch -g -c gm2/gm2-ppg-boot/$(SRC_PREFIX)$*.c -o $@ gm2/ppg$(exeext): gm2/boot-bin/mc $(BUILD-PPG-O) $(BUILD-MC-INTERFACE-O) gm2/gm2-ppg-boot/main.o gm2/gm2-libs-boot/pthdummy.o - $(CC) -g -o $@ $(BUILD-PPG-O) gm2/gm2-ppg-boot/main.o gm2/gm2-libs-boot/pthdummy.o -lm + $(CC) -g -o $@ $(BUILD-PPG-O) gm2/gm2-ppg-boot/main.o gm2/gm2-libs-boot/pthdummy.o -lgcov -lm gm2/gm2-ppg-boot/main.o: $(M2LINK) $(srcdir)/gm2/init/mcinit unset CC ; $(M2LINK) -s --gcc --exit --name mainppginit.c $(srcdir)/gm2/init/ppginit @@ -2112,7 +1954,7 @@ gm2/gm2-ppg-boot/main.o: $(M2LINK) $(srcdir)/gm2/init/mcinit $(CC) -g -c -o $@ gm2/gm2-ppg-boot/main.c gm2/gm2-auto: - mkdir gm2/gm2-auto + test -d $@ || mkdir -p $@ # # gm2/pg$(exext) is the 2nd generation parser generator built from ebnf @@ -2150,7 +1992,7 @@ gm2/gm2-pg-boot/$(SRC_PREFIX)pg.o: gm2/gm2-auto/pg.mod $(MCDEPS) $(BUILD-BOOT-H gm2/pg$(exeext): gm2/boot-bin/mc \ $(BUILD-PG-O) $(GM2-PPG-MODS:%.mod=gm2/gm2-pg-boot/%.o) \ $(BUILD-MC-INTERFACE-O) gm2/gm2-pg-boot/main.o gm2/gm2-libs-boot/pthdummy.o - $(CC) -g -o $@ $(BUILD-PG-O) gm2/gm2-pg-boot/main.o gm2/gm2-libs-boot/pthdummy.o -lm + $(CC) -g -o $@ $(BUILD-PG-O) gm2/gm2-pg-boot/main.o gm2/gm2-libs-boot/pthdummy.o -lgcov -lm gm2/gm2-auto/pginit: sed -e 's/ppg/pg/' < $(srcdir)/gm2/init/ppginit > $@ @@ -2192,18 +2034,51 @@ gm2/gm2-auto/pge.mod: gm2/pg$(exeext) gm2/gm2-pge-boot/$(SRC_PREFIX)%.h: $(srcdir)/gm2/gm2-libs/%.def $(MCDEPS) $(MCC) -o=$@ $(srcdir)/gm2/gm2-libs/$*.def -gm2/gm2-pge-boot/$(SRC_PREFIX)%.o: gm2/mc-boot-ch/$(SRC_PREFIX)%.c +gm2/gm2-pge-boot/$(SRC_PREFIX)libc.o: $(srcdir)/gm2/mc-boot-ch/Glibc.c + $(CC) -I$(srcdir)/gm2/mc-boot-ch -g -c $< -o $@ + +gm2/gm2-pge-boot/$(SRC_PREFIX)mcrts.o: $(srcdir)/gm2/mc-boot-ch/Gmcrts.c + $(CC) -I$(srcdir)/gm2/mc-boot-ch -g -c $< -o $@ + +gm2/gm2-pge-boot/$(SRC_PREFIX)UnixArgs.o: $(srcdir)/gm2/mc-boot-ch/GUnixArgs.c + $(CC) -I$(srcdir)/gm2/mc-boot-ch -g -c $< -o $@ + +gm2/gm2-pge-boot/$(SRC_PREFIX)Selective.o: $(srcdir)/gm2/mc-boot-ch/GSelective.c + $(CC) -I$(srcdir)/gm2/mc-boot-ch -g -c $< -o $@ + +gm2/gm2-pge-boot/$(SRC_PREFIX)termios.o: $(srcdir)/gm2/mc-boot-ch/Gtermios.c + $(CC) -I$(srcdir)/gm2/mc-boot-ch -g -c $< -o $@ + +gm2/gm2-pge-boot/$(SRC_PREFIX)SysExceptions.o: $(srcdir)/gm2/mc-boot-ch/GSysExceptions.c + $(CC) -I$(srcdir)/gm2/mc-boot-ch -g -c $< -o $@ + +gm2/gm2-pge-boot/$(SRC_PREFIX)ldtoa.o: $(srcdir)/gm2/mc-boot-ch/Gldtoa.c + $(CC) -I$(srcdir)/gm2/mc-boot-ch -g -c $< -o $@ + +gm2/gm2-pge-boot/$(SRC_PREFIX)dtoa.o: $(srcdir)/gm2/mc-boot-ch/Gdtoa.c + $(CC) -I$(srcdir)/gm2/mc-boot-ch -g -c $< -o $@ + +gm2/gm2-pge-boot/$(SRC_PREFIX)wrapc.o: $(srcdir)/gm2/mc-boot-ch/Gwrapc.c + $(CC) -I$(srcdir)/gm2/mc-boot-ch -g -c $< -o $@ + +gm2/gm2-pge-boot/$(SRC_PREFIX)SYSTEM.o: $(srcdir)/gm2/mc-boot-ch/GSYSTEM.c + $(CC) -I$(srcdir)/gm2/mc-boot-ch -g -c $< -o $@ + +gm2/gm2-pge-boot/$(SRC_PREFIX)errno.o: $(srcdir)/gm2/mc-boot-ch/Gerrno.c + $(CC) -I$(srcdir)/gm2/mc-boot-ch -g -c $< -o $@ + +gm2/gm2-pge-boot/$(SRC_PREFIX)pth.o: $(srcdir)/gm2/mc-boot-ch/Gpth.c $(CC) -I$(srcdir)/gm2/mc-boot-ch -g -c $< -o $@ gm2/gm2-pge-boot/$(SRC_PREFIX)%.o: $(srcdir)/gm2/gm2-libs/%.mod $(MCDEPS) $(BUILD-BOOT-H) - $(MCC) -o=gm2/gm2-pg-boot/$(SRC_PREFIX)$*.c $(srcdir)/gm2/gm2-libs/$*.mod - $(CC) -Igm2/gm2-pg-boot -I$(srcdir)/gm2/mc-boot -I$(srcdir)/gm2/mc-boot-ch \ - -g -c gm2/gm2-pg-boot/$(SRC_PREFIX)$*.c -o $@ + $(MCC) -o=gm2/gm2-pge-boot/$(SRC_PREFIX)$*.c $(srcdir)/gm2/gm2-libs/$*.mod + $(CC) -Igm2/gm2-pge-boot -I$(srcdir)/gm2/mc-boot -I$(srcdir)/gm2/mc-boot-ch \ + -g -c gm2/gm2-pge-boot/$(SRC_PREFIX)$*.c -o $@ gm2/gm2-pge-boot/$(SRC_PREFIX)%.o: $(srcdir)/gm2/gm2-compiler/%.mod $(MCDEPS) $(BUILD-BOOT-H) - $(MCC) -o=gm2/gm2-pg-boot/$(SRC_PREFIX)$*.c $(srcdir)/gm2/gm2-compiler/$*.mod + $(MCC) -o=gm2/gm2-pge-boot/$(SRC_PREFIX)$*.c $(srcdir)/gm2/gm2-compiler/$*.mod $(CC) -Igm2/mc-boot -Igm2/gm2-compiler-boot -Igm2/gm2-libs-boot \ - -I$(srcdir)/gm2/mc-boot-ch -g -c gm2/gm2-pg-boot/$(SRC_PREFIX)$*.c -o $@ + -I$(srcdir)/gm2/mc-boot-ch -g -c gm2/gm2-pge-boot/$(SRC_PREFIX)$*.c -o $@ gm2/gm2-pge-boot/$(SRC_PREFIX)pge.o: gm2/gm2-auto/pge.mod $(MCDEPS) $(BUILD-BOOT-H) $(MCC) -o=gm2/gm2-pge-boot/$(SRC_PREFIX)pge.c gm2/gm2-auto/pge.mod @@ -2213,7 +2088,7 @@ gm2/gm2-pge-boot/$(SRC_PREFIX)pge.o: gm2/gm2-auto/pge.mod $(MCDEPS) $(BUILD-BOO gm2/pge$(exeext): gm2/boot-bin/mc \ $(BUILD-PGE-O) $(GM2-PPG-MODS:%.mod=gm2/gm2-pge-boot/%.o) \ $(BUILD-MC-INTERFACE-O) gm2/gm2-pge-boot/main.o gm2/gm2-libs-boot/pthdummy.o - $(CC) -g -o $@ $(BUILD-PGE-O) gm2/gm2-pge-boot/main.o gm2/gm2-libs-boot/pthdummy.o -lm + $(CC) -g -o $@ $(BUILD-PGE-O) gm2/gm2-pge-boot/main.o gm2/gm2-libs-boot/pthdummy.o -lgcov -lm $(srcdir)/gm2/tools-src/buildpg $(srcdir)/gm2/gm2-compiler/ppg.mod t > gm2/gm2-auto/t.bnf ./gm2/pge$(exeext) gm2/gm2-auto/t.bnf > gm2/gm2-auto/t1.mod ./gm2/pg$(exeext) gm2/gm2-auto/t.bnf > gm2/gm2-auto/t2.mod @@ -2414,17 +2289,7 @@ check-modula-2: check-gm2 check_modula-2: check-gm2 check_modula-2: check-gm2 -GM2TESTSUITEDIR=testsuite - -check-gm2: $(GM2TESTSUITEDIR)/site.exp - -(rootme=`${PWD_COMMAND}`; export rootme; \ - srcdir=`cd ${srcdir}; ${PWD_COMMAND}` ; export srcdir ; \ - cd $(TESTSUITEDIR); \ - EXPECT=${EXPECT} ; export EXPECT ; \ - if [ -f $${rootme}/../expect/expect ] ; then \ - TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWD_COMMAND}` ; \ - export TCL_LIBRARY ; fi ; \ - $(RUNTEST) --tool gm2 $(RUNTESTFLAGS)) +lang_checks += check-gm2 check-gm2-local: $(GM2TESTSUITEDIR)/site.exp -(rootme=`${PWD_COMMAND}`; export rootme; \ @@ -2472,7 +2337,7 @@ gm2.maintainer-help: force @echo "make gm2.maintainer-reconfigure rebuild the configure scripts" @echo "make gm2.maintainer-clean clean pre-built images and texi files" -GM2DISTFILES = CVS ChangeLog gm2/Make-lang.in README bnf config-lang.in \ +GM2DISTFILES = ChangeLog gm2/Make-lang.in README bnf config-lang.in \ el gccgdbinit gccgm2.c gm2-gcc \ gm2-auto gm2-compiler gm2-compiler-boot \ gm2-gccinit gm2-libs gm2-libs-boot gm2-libs-ch gm2.texi gm2spec.c \ --- a/src/gcc/gm2/config-lang.in +++ b/src/gcc/gm2/config-lang.in @@ -79,3 +79,32 @@ outputs=" \ gm2/man/Makefile \ gm2/www/Makefile \ " + +mkdir -p gm2/gm2-compiler-boot +mkdir -p gm2/gm2-libs-boot +mkdir -p gm2/gm2-ppg-boot +mkdir -p gm2/gm2-pge-boot +mkdir -p gm2/gm2-pg-boot +mkdir -p gm2/gm2-tools-boot +mkdir -p gm2/gm2-tools +mkdir -p gm2/gm2-libiberty +mkdir -p gm2/gm2-gcc +mkdir -p gm2/gm2-auto +mkdir -p gm2/gm2-compiler +mkdir -p gm2/gm2-libs +mkdir -p gm2/gm2-libs-iso +mkdir -p gm2/gm2-compiler-paranoid +mkdir -p gm2/gm2-libs-paranoid +mkdir -p gm2/gm2-compiler-verify +mkdir -p gm2/boot-bin +mkdir -p gm2/ulm-lib-gm2 +mkdir -p gm2/ulm-lib-gm2/sys +mkdir -p gm2/ulm-lib-gm2/std +mkdir -p gm2/gm2-libs-pim +mkdir -p gm2/gm2-libs-coroutines +mkdir -p gm2/gm2-libs-min +mkdir -p gm2/mc-boot +mkdir -p gm2/mc-boot-ch +mkdir -p gm2/mc-boot-gen +mkdir -p plugin +mkdir -p stage1/gm2 stage2/gm2 stage3/gm2 stage4/gm2 --- a/src/gcc/gm2/examples/gravity/Makefile.in +++ b/src/gcc/gm2/examples/gravity/Makefile.in @@ -54,7 +54,7 @@ else LIBDIR=$(prefix)/lib endif -PYTHON_VERSION=2.7 +PYTHON_VERSION=3 all: force @@ -64,7 +64,7 @@ all: force pre-install: libtwoDsim.la run: pre-install - PYTHONPATH=`pwd` python $(srcdir)/testsim2.py + PYTHONPATH=`pwd` python$(PYTHON_VERSION) $(srcdir)/testsim2.py $(SHELL) $(srcdir)/produce-avi libtwoDsim.la: $(TWODSIM:%.mod=%.lo) --- a/src/gcc/gm2/examples/gravity/README +++ b/src/gcc/gm2/examples/gravity/README @@ -5,4 +5,4 @@ netpbm. On Debian or Ubuntu you can: -$ sudo apt-get install groff imagemagick python2.8-dev python swig gs netpbm mplayer +$ sudo apt-get install groff imagemagick python3-dev swig gs netpbm mplayer --- a/src/gcc/gm2/examples/gravity/testsim.py +++ b/src/gcc/gm2/examples/gravity/testsim.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 # Copyright (C) 2010 # Free Software Foundation, Inc. @@ -33,9 +33,9 @@ c2 = fix(c2) gravity(-9.81) fps(24.0*4.0) replayRate(24.0) -print "creating frames" +print("creating frames") try: simulateFor(1.0) - print "all done" + print("all done") except: - print "exception raised" + print("exception raised") --- a/src/gcc/gm2/examples/gravity/testsim2.py +++ b/src/gcc/gm2/examples/gravity/testsim2.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 # Copyright (C) 2010 # Free Software Foundation, Inc. @@ -43,9 +43,9 @@ for x in [0.4, 0.7]: gravity(-9.81) fps(24.0*4.0) replayRate(24.0) -print "creating frames" +print("creating frames") try: simulateFor(3.0) - print "all done" + print("all done") except: - print "exception raised" + print("exception raised") --- a/src/gcc/gm2/examples/pge/Makefile.in +++ b/src/gcc/gm2/examples/pge/Makefile.in @@ -56,7 +56,7 @@ OBJ_PATH=.:../../gm2-libs-iso:../../gm2/gm2-libs XGM2=../../../xgm2 -B../../../ XGCC=../../../xgcc -B../../../ -PYTHON_VERSION=2.7 +PYTHON_VERSION=3 all: force @echo "you need to use 'make pre-install' to build the examples using the locally built compiler" @@ -70,7 +70,7 @@ all: force maxima -b $< > $@ %.m: $(srcdir)/%.mxm - python $(srcdir)/max2code.py -o $@ $< + python$(PYTHON_VERSION) $(srcdir)/max2code.py -o $@ $< $(srcdir)/twoDsim.mod: circles.m rotating-line.m rotating-circles.m @@ -90,10 +90,10 @@ twoDsim.o: $(srcdir)/twoDsim.mod libtool --tag=CC --mode=compile gcc -g -I$(srcdir) -c $< -o $@ run-whole-world: force - ( python ../../../../../combined/gm2/gcc-versionno/gcc/gm2/examples/pge/pgepygame.py & ) ; sleep 1 ; ./whole-world + ( python$(PYTHON_VERSION) ../../../../../combined/gm2/gcc-versionno/gcc/gm2/examples/pge/pgepygame.py & ) ; sleep 1 ; ./whole-world run-post-world: force - ( python ../../../../../combined/gm2/gcc-versionno/gcc/gm2/examples/pge/pgepygame.py & ) ; sleep 1 ; ./post-world + ( python$(PYTHON_VERSION) ../../../../../combined/gm2/gcc-versionno/gcc/gm2/examples/pge/pgepygame.py & ) ; sleep 1 ; ./post-world post-whole-world: circles.m force gm2 -fm2-statistics -O3 -fsources -fiso -fcpp -I$(srcdir) -fm2-whole-program -fextended-opaque -g -o whole-world $(srcdir)/world.mod @@ -117,13 +117,13 @@ libpgeif.la: $(PGELIBSOURCES:%.mod=%.lo) buffers.lo cp .libs/libpgeif.so _pgeif.so output.raw: libpgeif.la - PYTHONPATH=.:$(srcdir) python $(srcdir)/examples/exampleBoxes.py + PYTHONPATH=.:$(srcdir) python$(PYTHON_VERSION) $(srcdir)/examples/exampleBoxes.py playback: force - PYTHONPATH=.:$(srcdir) python $(srcdir)/pgeplayback.py + PYTHONPATH=.:$(srcdir) python$(PYTHON_VERSION) $(srcdir)/pgeplayback.py boxes.raw: libpgeif.la - PYTHONPATH=.:$(srcdir) python $(srcdir)/examples/boxes.py + PYTHONPATH=.:$(srcdir) python$(PYTHON_VERSION) $(srcdir)/examples/boxes.py foo: circles.m $(OBJECTS) gm2 $(GM2FLAGS) -fonlylink $(srcdir)/foo.mod --- a/src/gcc/gm2/examples/pge/debugthis +++ b/src/gcc/gm2/examples/pge/debugthis @@ -1,5 +1,5 @@ -#!/bin/bash +#!/bin/sh # python -m pdb max2code.py -v -o t.mod test.mxm -python -m pdb fig.py foo.fig foo.mod +python3 -m pdb fig.py foo.fig foo.mod --- a/src/gcc/gm2/examples/pge/examples/boxes.py +++ b/src/gcc/gm2/examples/pge/examples/boxes.py @@ -1,8 +1,8 @@ -#!/usr/bin/env python +#!/usr/bin/python3 import pge, sys -print "starting boxes" +print("starting boxes") pge.batch () wood_light = pge.rgb (166.0/256.0, 124.0/256.0, 54.0/256.0) @@ -14,7 +14,7 @@ boarder = 0.01 def placeBoarders (thickness, color): - print "placeBoarders" + print("placeBoarders") pge.box (0.0, 0.0, 1.0, thickness, color).fix () pge.box (0.0, 0.0, thickness, 1.0, color).fix () pge.box (1.0-thickness, 0.0, thickness, 1.0, color).fix () @@ -31,5 +31,5 @@ def main (): pge.run (3.0) pge.finish () -print "before main()" +print("before main()") main () --- a/src/gcc/gm2/examples/pge/examples/exampleBoxes.py +++ b/src/gcc/gm2/examples/pge/examples/exampleBoxes.py @@ -1,9 +1,9 @@ -#!/usr/bin/env python +#!/usr/bin/python3 import pge, sys # import pgemacro -print "starting exampleBoxes" +print("starting exampleBoxes") pge.batch () t = pge.rgb (1.0/2.0, 2.0/3.0, 3.0/4.0) @@ -21,19 +21,19 @@ gap = 0.01 def play_wood (o): - print "play_wood - wants to play bounce.wav" + print("play_wood - wants to play bounce.wav") pge.play ("/home/gaius/Sandpit/cluedo/sounds/bounce.wav") def play_crack (o): - print "play_crack - wants to play crack-single.wav" + print("play_crack - wants to play crack-single.wav") pge.play ("/home/gaius/Sandpit/penguin-tower/sounds/crack-single.wav") def play_bounce (o): - print "play_bounce - wants to play cardsnap.wav" + print("play_bounce - wants to play cardsnap.wav") pge.play ("/home/gaius/Sandpit/cluedo/sounds/cardsnap.wav") def placeBoarders (thickness, color): - print "placeBoarders" + print("placeBoarders") e1 = pge.box (0.0, 0.0, 1.0, thickness, color).fix () e2 = pge.box (0.0, 0.0, thickness, 1.0, color).fix () e3 = pge.box (1.0-thickness, 0.0, thickness, 1.0, color).fix () @@ -56,34 +56,34 @@ def is_odd (e): def crate_split (p): global gap - print "crate_split", p + print(("crate_split", p)) pge.dump_world () e = p.get_param () - print "after get_param" + print("after get_param") w = e[1] / 2 wg = w - gap if wg<0.0: - print "error gap must be >= 0.0 and not", wg + print(("error gap must be >= 0.0 and not", wg)) sys.exit (1) if e != None: if e[0] == 0: - print "crate piece completely gone" + print("crate piece completely gone") # at the end of 6 collisions the crates disappear p.rm () play_crack (p) elif is_odd (e[0]): pge.process_event () # update the velocities of objects (immediately after collision) - print "crate sub divides" + print("crate sub divides") # subdivide into smaller crates, every odd bounce m = p.get_mass () - print "mass of crate is", m + print(("mass of crate is", m)) pge.dump_world () - print "get crate colour" + print("get crate colour") c = p.get_colour () - print "colour of crate is", c + print(("colour of crate is", c)) pge.dump_world () - print e - print "get_xpos" + print(e) + print("get_xpos") x = p.get_xpos () - e[1]/2 pge.dump_world () y = p.get_ypos () - e[1]/2 @@ -91,22 +91,22 @@ def crate_split (p): vy = p.get_yvel () ax = p.get_xaccel () ay = p.get_yaccel () - print "**************** x, y, w, wg = ", x, y, w, wg, vx, vy, ax, ay + print(("**************** x, y, w, wg = ", x, y, w, wg, vx, vy, ax, ay)) pge.dump_world () - print "rm", p + print(("rm", p)) p.rm () - print "finished rm, python dumping world" + print("finished rm, python dumping world") pge.dump_world () for v in [[0, 0], [0, w], [w, 0], [w, w]]: - print "creating sub box", v, "gap =", wg + print(("creating sub box", v, "gap =", wg)) b = pge.box (v[0]+x, v[1]+y, wg, wg, c).mass (m).on_collision (crate_split).velocity (vx, vy).accel (ax, ay) - print "set_param", [e[0]-1, w] + print(("set_param", [e[0]-1, w])) b.set_param ([e[0]-1, w]) pge.dump_world () - print "play_crack", p + print(("play_crack", p)) play_crack (p) else: - print "crate bounces without breaking" + print("crate bounces without breaking") # allow collision (bounce) without splitting every even bounce p.set_param ([e[0]-1, e[1]]) play_bounce (p) @@ -118,11 +118,11 @@ def main (): # b = placeBall (0.5, 0.5, 0.02) # b.mass (1.0).on_collision (play_bounce).velocity (0.9, 0.0) crate (0.6, 0.6, 0.2) - print "before run" + print("before run") pge.gravity () pge.dump_world () pge.run (10.0) pge.finish () -print "before main()" +print("before main()") main () --- a/src/gcc/gm2/examples/pge/examples/exampleBoxes.py~ +++ b/src/gcc/gm2/examples/pge/examples/exampleBoxes.py~ @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 import pge # import pgemacro --- a/src/gcc/gm2/examples/pge/examples/triangle.py +++ b/src/gcc/gm2/examples/pge/examples/triangle.py @@ -1,8 +1,8 @@ -#!/usr/bin/env python +#!/usr/bin/python3 import pge, sys -print "starting triangle" +print("starting triangle") pge.batch () t = pge.rgb (1.0/2.0, 2.0/3.0, 3.0/4.0) @@ -17,7 +17,7 @@ gap = 0.01 def placeBoarders (thickness, color): - print "placeBoarders" + print("placeBoarders") e1 = pge.box (0.0, 0.0, 1.0, thickness, color).fix () e2 = pge.box (0.0, 0.0, thickness, 1.0, color).fix () e3 = pge.box (1.0-thickness, 0.0, thickness, 1.0, color).fix () @@ -38,11 +38,11 @@ def main (): c = placeBall (0.41, 0.89, 0.05).mass (1) l = placeTriangle ([0.3, 0.3], [0.5, 0.3], [0.4, 0.4]) b1, b2, b3, b4 = placeBoarders (boarder, wood_dark) - print "before run" + print("before run") pge.gravity () pge.dump_world () pge.run (3.0) pge.finish () -print "before main()" +print("before main()") main () --- a/src/gcc/gm2/examples/pge/fig.py +++ b/src/gcc/gm2/examples/pge/fig.py @@ -1,14 +1,14 @@ -#!/usr/bin/env python +#!/usr/bin/python3 import sys import getopt # object codes -fig_o_customColor, fig_o_ellipse, fig_o_polygon, fig_o_spline, fig_o_text, fig_o_arc, fig_o_compound_begin = range(7) +fig_o_customColor, fig_o_ellipse, fig_o_polygon, fig_o_spline, fig_o_text, fig_o_arc, fig_o_compound_begin = list(range(7)) fig_o_compound_end = -6 # polygon type constants -fig_pt_polyline, fig_pt_box, fig_pt_polygon, fig_pt_arcbox, fig_pt_picturebbox = range(1, 6) +fig_pt_polyline, fig_pt_box, fig_pt_polygon, fig_pt_arcbox, fig_pt_picturebbox = list(range(1, 6)) # @@ -16,7 +16,7 @@ fig_pt_polyline, fig_pt_box, fig_pt_polygon, fig_pt_arcbox, fig_pt_picturebbox = # def printf (format, *args): - print str(format) % args, + print(str(format) % args, end=' ') colorNo = 0 @@ -54,7 +54,7 @@ class fig: # def readContents (self): self.contents = open(self.filename, 'r').readlines() - print self.contents + print(self.contents) def error (self, message): printf("%s:%d:%s\n", self.filename, self.lineno, message) @@ -133,19 +133,19 @@ class fig: self.skipLine () if characteristics[-1] == "2": points = self.contents[0].split() - print "force points are", points + print("force points are", points) if characteristics[-3] == "0" and characteristics[-2] == "1": - print "found force backward" + print("found force backward") self.forces += [["force", "backward", points]] elif characteristics[-3] == "1" and characteristics[-2] == "0": - print "found force forward" + print("found force forward") self.forces += [["force", "forward", points]] elif characteristics[2] == "0": # solid, we treat as fixed - print "found fixed polygon", points + print("found fixed polygon", points) self.objects += [["fixed", "polygon", points]] else: - print "found non fixed polygon", points + print("found non fixed polygon", points) self.objects += [["nonfixed", "polygon", points]] @@ -156,12 +156,12 @@ class fig: def parseEllipse32 (self): ellipse = self.contents[0].split () if ellipse[2] == "0": - print "found fixed circle", ellipse[-8:-4] + print("found fixed circle", ellipse[-8:-4]) # solid (ellipse) treat as a fixed circle self.objects += [["fixed", "circle", ellipse[-8:-4]]] else: # treat as a nonfixed circle - print "found non fixed circle", ellipse[-8:-4] + print("found non fixed circle", ellipse[-8:-4]) self.objects += [["nonfixed", "circle", ellipse[-8:-4]]] self.skipLine () @@ -260,7 +260,7 @@ class fig: def findExtents (self): self.minp, self.maxp = -1, -1 for o in self.objects: - print "finding extent of", o + print("finding extent of", o) self.minp, self.maxp = self.examineExtent(o) return self.minp, self.maxp @@ -276,7 +276,7 @@ class fig: def doFract (self, n): if (n<-100) or (n>100): - print n, "error" + print(n, "error") # self.error("incorrect position calculated") if n == 0: self.fo.write("zero()") @@ -336,7 +336,7 @@ class fig: popWorld.mass(cardinal(1)) ; """) if self.forces != []: - print self.forces[0] + print(self.forces[0]) self.doForce (self.forces[0]) self.fo.write(""" popWorld.populate(m, FALSE, TRUE) ; @@ -345,16 +345,16 @@ class fig: def checkVectorSum (self, x0, x1, x2): ox = x0 - print "x:", x0, x1, x2, + print("x:", x0, x1, x2, end=' ') tx = x0 + x1 + x2 if tx<0: x0 += (-tx) elif tx>100: x0 -= (tx-100) if ox == x0: - print + print() else: - print " ->", x0, x1, x2 + print(" ->", x0, x1, x2) return x0, x1, x2 @@ -429,9 +429,9 @@ class fig: def generateModula2 (self): if self.objects != []: - print "objects are: ", self.objects + print("objects are: ", self.objects) self.minp, self.maxp = self.findExtents() - print "max extents are:", self.minp, self.maxp + print("max extents are:", self.minp, self.maxp) self.createModule() def doStyle (self, style): @@ -547,7 +547,7 @@ BEGIN # def usage (value): - print "fig [-h] inputfile outputfile" + print("fig [-h] inputfile outputfile") sys.exit(value) --- a/src/gcc/gm2/examples/pge/max2code +++ b/src/gcc/gm2/examples/pge/max2code @@ -1,3 +1,3 @@ #!/bin/bash -python max2code.py $* +python3 max2code.py $* --- a/src/gcc/gm2/examples/pge/max2code.py +++ b/src/gcc/gm2/examples/pge/max2code.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 import sys, getopt @@ -20,7 +20,7 @@ verbose = False # def usage (value): - print "max2code [-h][-v][-o outputfile][-l c][-l m2][--lang=m2][--lang=c] inputfile" + print("max2code [-h][-v][-o outputfile][-l c][-l m2][--lang=m2][--lang=c] inputfile") sys.exit(value) @@ -60,10 +60,10 @@ def main (): parseArgs() if outputFile == "": - print "no output file specified" + print("no output file specified") usage(1) if inputFile == "": - print "no input file specified" + print("no input file specified") usage(1) else: p = parse(inputFile, outputFile, defaultLang, verbose) --- a/src/gcc/gm2/examples/pge/mxmmaxima.py +++ b/src/gcc/gm2/examples/pge/mxmmaxima.py @@ -38,7 +38,7 @@ class parse: def getPolynomials (self, nTerms): if self.expression(): e = self.expressionStack.pop() - for n in reversed(range(nTerms)): + for n in reversed(list(range(nTerms))): self.terms += [e.collectPolynomial(n, 't')] self.terms.reverse() return self.terms @@ -331,7 +331,7 @@ class parse: def syntaxError (self, message): mystop () printHeader(self.inputFile, self.lineNo) - print self.contents + print((self.contents)) j = self.columnNo-len(self.tok) s = " " * j @@ -339,7 +339,7 @@ class parse: s += " " s += message printHeader(self.inputFile, self.lineNo) - print s + print(s) sys.exit(1) @@ -349,10 +349,10 @@ class parse: def printToken (self, token): printHeader(self.inputFile, self.lineNo-1) - print self.contents + print((self.contents)) j = self.columnNo-len(token) s = " " * j s += "^" * len(token) printHeader(self.inputFile, self.lineNo) - print s + print(s) --- a/src/gcc/gm2/examples/pge/mxmout.py +++ b/src/gcc/gm2/examples/pge/mxmout.py @@ -8,7 +8,7 @@ # def printf (format, *args): - print str(format) % args, + print(str(format) % args, end=' ') # --- a/src/gcc/gm2/examples/pge/mxmparser.py +++ b/src/gcc/gm2/examples/pge/mxmparser.py @@ -25,7 +25,7 @@ commentLeader = '//' def internalError (message): stop() - print message + print(message) sys.exit(1) @@ -116,8 +116,8 @@ class parse: o = "outfile.m" m = open(o, 'r').readlines() if verbose: - print "output from maxima is:" - print string.join(m, '') + print("output from maxima is:") + print((string.join(m, ''))) c = "rm %s\n" % i os.system(c) c = "rm %s\n" % o @@ -238,7 +238,7 @@ class parse: else: printf(alternative) printf("\n") - print self.contents + print((self.contents)) # --- a/src/gcc/gm2/examples/pge/mxmtree.py +++ b/src/gcc/gm2/examples/pge/mxmtree.py @@ -6,7 +6,7 @@ from mxmutils import * defaultLang = "c" -atom, node = range(2) +atom, node = list(range(2)) output = "" @@ -15,7 +15,7 @@ output = "" # def printf (format, *args): - print str(format) % args, + print(str(format) % args, end=' ') # --- a/src/gcc/gm2/examples/pge/pge.py +++ b/src/gcc/gm2/examples/pge/pge.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 import pgeif import pygame @@ -9,10 +9,10 @@ import math from pygame.locals import * -colour_t, box_t, circle_t, fb_box_t, fb_circle_t, fb_text_t = range (6) +colour_t, box_t, circle_t, fb_box_t, fb_circle_t, fb_text_t = list(range(6)) id2ob = {} ob2id = {} -batch_d, pyg_d = range (2) +batch_d, pyg_d = list(range(2)) device = None opened = False output = None @@ -49,14 +49,14 @@ font = None # def printf (format, *args): - print str (format) % args, + print(str (format) % args, end=' ') def debugf (format, *args): global debugging if debugging: - print str (format) % args, + print(str (format) % args, end=' ') def errorf (format, *args): m = str (format) % args @@ -148,7 +148,7 @@ class object: self._check_colour () i = pgeif.h2l (self._get_pgeif_colour ()) - if idTOcol.has_key (i): + if i in idTOcol: return idTOcol[i] internalf ("3 colour triple should have been defined") @@ -197,7 +197,7 @@ class object: _emit_fract (self.o [1]) # y pos _emit_fract (self.o [2]) # radius _emit_short (self.o [3]) # colour - print "_emit_fill_circle, colour is ", self.o [3], self.o [0], self.o [1], self.o [2] + print("_emit_fill_circle, colour is ", self.o [3], self.o [0], self.o [1], self.o [2]) def _emit_fill_polygon (self): output.write (struct.pack ("3s", "dP")) @@ -225,7 +225,7 @@ class object: self._check_type ([box_t, circle_t], "assign a velocity to a") self._check_not_fixed ("assign a velocity") self._check_not_deleted ("a velocity") - print "velocity for object", self.o, vx, vy + print("velocity for object", self.o, vx, vy) self.o = self._check_same (pgeif.velocity (self.o, vx, vy)) return self @@ -242,7 +242,7 @@ class object: self._check_no_mass ("cannot fix " + self._name () + " as it has a mass") self.fixed = True self.o = self._check_same (pgeif.fix (self.o)) - print "fix", self.o + print("fix", self.o) return self def mass (self, m): @@ -253,7 +253,7 @@ class object: errorf ("cannot give value None as the mass\n") self.kg = m self.o = self._check_same (pgeif.mass (self.o, m)) - print "mass", self.o + print("mass", self.o) return self def apply_impulse (self, unit_vec, magnitude): @@ -262,13 +262,13 @@ class object: self._check_not_deleted (" an impulse") if (magnitude is None) or (unit_vec is None): return - print "magnitude", magnitude, "vector", unit_vec + print("magnitude", magnitude, "vector", unit_vec) pgeif.apply_impulse (self.o, unit_vec[0], unit_vec[1], magnitude) return self def on_collision_with (self, another, p): if debugging: - print "ok registering call back", p, another + print("ok registering call back", p, another) self.collisionp = p self.collisionWith = another return self @@ -318,14 +318,14 @@ class object: def _collision (self, between, e): if debugging: - print "collision seen, between:", between + print("collision seen, between:", between) if self.collisionWith == []: if self.collisionp != None: if debugging: - print "before collisionp" + print("before collisionp") self.collisionp (self, e) if debugging: - print "after collisionp" + print("after collisionp") else: for c in self.collisionWith: for b in between: @@ -396,7 +396,7 @@ class object: return pgeif.get_yaccel (self.o) def put_xvel (self, f): - print "put_xvel on a", self._name () + print("put_xvel on a", self._name ()) self._check_type ([box_t, circle_t], "put the xvel") return pgeif.put_xvel (self.o, f) @@ -425,14 +425,14 @@ def _colspace (f): def rgb (r, g, b): global idTOcol - print "in rgb (", r, g, b, ")" + print("in rgb (", r, g, b, ")") c = pgeif.rgb (float(r), float(g), float(b)) - print "after pgeif.rgb ->", c + print("after pgeif.rgb ->", c) o = object (colour_t, [float(r), float(g), float(b), c]) o._check_colour () c = pgeif.h2l (c) idTOcol[c] = (_colspace (r), _colspace (g), _colspace (b)) - print "define colour triple as:", idTOcol[c] + print("define colour triple as:", idTOcol[c]) return o def white (): @@ -462,18 +462,18 @@ def text (x, y, s, c, size, level): def box (x, y, w, h, c, level = 0): - print "box:", x, y, w, h, c, level + print("box:", x, y, w, h, c, level) c._param_colour ("fifth parameter to box is expected to be a colour") if level == 0: id = pgeif.box (x, y, w, h, c._get_pgeif_colour ()) - print "box colour =", c, c._get_pgeif_colour () + print("box colour =", c, c._get_pgeif_colour ()) ob = object (box_t, id, c, level) ob.set_width (w) debugf ("box ") _register (id, ob) else: ob = object (fb_box_t, [x, y, x+w, y, x+w, y+h, x+w, y+h, x, y+h, c._get_pgeif_colour ()], c, level) - print "box colour =", c, c._get_pgeif_colour () + print("box colour =", c, c._get_pgeif_colour ()) _add (ob, level) return ob @@ -516,30 +516,30 @@ def _add (ob, level): background += [level] background.sort () - if levels.has_key (level): + if level in levels: levels[level] += [ob] else: levels[level] = [ob] - print levels[level] + print(levels[level]) def _sub (ob, level): global foreground, background - if levels.has_key (level): + if level in levels: levels[level].remove (ob) if level > 0: f = [] for l in foreground: - if levels.has_key (l): + if l in levels: f += [l] foreground = f foreground.sort () else: b = [] for l in background: - if levels.has_key (l): + if l in levels: b += [l] background = b background.sort () @@ -549,13 +549,13 @@ def circle (x, y, r, c, level = 0): c._param_colour ("fourth parameter to box is expected to be a colour") if level == 0: id = pgeif.circle (x, y, r, c._get_pgeif_colour ()) - print "circle id =", id + print("circle id =", id) debugf ("circle ") ob = object (circle_t, id, c, level) _register (id, ob) else: - print "circle, colour =", c - print "pge: colour", c._get_pgeif_colour () + print("circle, colour =", c) + print("pge: colour", c._get_pgeif_colour ()) ob = object (fb_circle_t, [x, y, r, c._get_pgeif_colour ()], c, level) _add (ob, level) return ob @@ -636,7 +636,7 @@ def draw_background (): for o in levels[l]: o._draw () -no_event, frame_event, collision_event, function_event, final_event = range (5) +no_event, frame_event, collision_event, function_event, final_event = list(range(5)) class event: def __init__ (self, t, d, l): @@ -706,14 +706,14 @@ class event: self._handle_frame_buffer () _collision (self._between (), self) elif self._type == function_event: - print "_process found timer_event", self.__id + print("_process found timer_event", self.__id) i = self.__id - if id2func.has_key (i): - print "function", i, "about to be called" + if i in id2func: + print("function", i, "about to be called") id2func [i] () - print "function", i, "finished" + print("function", i, "finished") else: - print "function", i, "has been cancelled" + print("function", i, "has been cancelled") def _handle_frame_buffer (self): cData = pgeif.get_cbuf () debugf ("cData len = %d\n", len (cData)) @@ -741,7 +741,7 @@ class event: def _get_time (self): return self.__etime def collision_between (self): - print self._between () + print(self._between ()) return self._between () def cancel (self): self._cancelled = True @@ -827,28 +827,28 @@ def _add_relative (r): pge_event_queue = [] def display_element (e, t): - print "[", e[0], "ms ", + print("[", e[0], "ms ", end=' ') if e[1]._type == frame_event: - print "displayframe", + print("displayframe", end=' ') elif e[1]._type == collision_event: - print "collision", + print("collision", end=' ') elif e[1]._type == function_event: - print "timer", + print("timer", end=' ') else: - print "final", - print " at", e[0] + (int) (t * 1000.0), "ms", - print "], ", + print("final", end=' ') + print(" at", e[0] + (int) (t * 1000.0), "ms", end=' ') + print("], ", end=' ') def display_event_queue (q): if q == []: - print "event queue is empty" + print("event queue is empty") else: - print "event queue: " + print("event queue: ") t = pgeif.get_time () for e in q: display_element (e, t) t += e[1]._get_time () - print "" + print("") prev_event_time = 0.0 @@ -869,7 +869,7 @@ def _wait_for_event (): global pge_event_queue, slow_down_factor, device, _record, debugging if debugging: - print "_wait_for_event, pge_event_queue =" + print("_wait_for_event, pge_event_queue =") display_event_queue (pge_event_queue) if device == pyg_d: pygame.event.set_allowed (None) @@ -903,7 +903,7 @@ def at_time (t, p): def at_cancel (i): global id2func - if id2func.has_key (i): + if i in id2func: del id2func[i] else: error ("at_cancel cannot delete function %d as it no longer exists\n", i) @@ -933,10 +933,10 @@ def pyg_draw_frame (cdata, clength, fdata, flength): while f.left () >= 3: header = struct.unpack ("3s", f.read (3))[0] header = header[:2] - if call.has_key (header): + if header in call: f = call[header] (f) else: - print "not understood header =", header + print("not understood header =", header) sys.exit (1) # printf ("drawing foreground\n") if flength > 0: @@ -1086,7 +1086,7 @@ def runpy (t=-1, ep=None): _process (pe) ev = _get_next_event () nev = _post_event (ev, ev._get_time ()) - elif pyevent2func.has_key (e.type): + elif e.type in pyevent2func: pyevent2func[e.type] (e) # what does this code do?? # elif ep != None: @@ -1190,8 +1190,8 @@ def load_sound (name): return NoneSound() try: sound = pygame.mixer.Sound(name) - except pygame.error, message: - print 'cannot load sound file:', name + except pygame.error as message: + print('cannot load sound file:', name) return NoneSound() return sound @@ -1342,7 +1342,7 @@ def doRegisterColour (f): f, gf = readFract (f) f, bf = readFract (f) if debugging: - print rf, gf, bf + print(rf, gf, bf) r = toCol (rf) g = toCol (gf) b = toCol (bf) @@ -1388,14 +1388,14 @@ def doDrawFillPolygon (f): f, xf = readFract (f) f, yf = readFract (f) if debugging: - print xf, yf, + print(xf, yf, end=' ') x = mults (resolution[0], xf) y = mults (resolution[1], yf) l += [[x, flip (y)]] f, c = readColour (f) if debugging: - print "drawFillPolygon (colour =", c, " l =", l, ")" + print("drawFillPolygon (colour =", c, " l =", l, ")") pygame.draw.polygon (screen, c, l, 0) return f @@ -1426,7 +1426,7 @@ def doDrawFillCircle (f): f, c = readColour (f) debugf("circle x = %d y = %d, r = %d\n", x, y, r) if debugging: - print " colour =", c + print(" colour =", c) pygame.draw.circle (screen, c, (x, flip (y)), r, 0) return f @@ -1479,14 +1479,14 @@ def doDrawPolygon (f): f, xf = readFract (f) f, yf = readFract (f) if debugging: - print xf, yf, + print(xf, yf, end=' ') x = mults (resolution[0], xf) y = mults (resolution[1], yf) l += [[x, flip(y)]] f, t = readFract (f) if debugging: - print "draw polygon", l, "thickness", t + print("draw polygon", l, "thickness", t) # pygame.draw.polygon (screen, c, l, 0) return f --- a/src/gcc/gm2/examples/pge/pge2d.py +++ a/src/gcc/gm2/examples/pge/pge2d.py @@ -1,10 +0,0 @@ -#!/usr/bin/env python - - - -# -# -# - -def rgb (r, g, b): - --- a/src/gcc/gm2/examples/pge/pgeplayback.py +++ b/src/gcc/gm2/examples/pge/pgeplayback.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 import os, pygame, string, sys, getopt, math, struct, time from pygame.locals import * @@ -73,7 +73,7 @@ class myfile: def rewind_to (self, frameno): global seekTable - if seekTable.has_key (frameno): + if frameno in seekTable: self.pos = seekTable[frameno] return True else: @@ -87,14 +87,14 @@ class myfile: # def printf (format, *args): - print str(format) % args, + print(str(format) % args, end=' ') # # error - issues an error message and exits. # def error (format, *args): - print str(format) % args, + print(str(format) % args, end=' ') sys.exit(1) @@ -105,7 +105,7 @@ def error (format, *args): def debugf (format, *args): global debugging if debugging: - print str(format) % args, + print(str(format) % args, end=' ') # @@ -129,8 +129,8 @@ def load_sound(name): return NoneSound () try: sound = pygame.mixer.Sound (name) - except pygame.error, message: - print 'cannot load sound file:', name + except pygame.error as message: + print('cannot load sound file:', name) return NoneSound () return sound @@ -148,11 +148,11 @@ def doPlay (f): global sounds, wantedFrame, frameNo name = getSoundName (f) - print "need to play", name - if not sounds.has_key (name): + print("need to play", name) + if name not in sounds: sounds[name] = load_sound (name) if frameNo == wantedFrame: - print "playing", name + print("playing", name) sounds[name].play () return f @@ -201,7 +201,7 @@ def registerColour (f): f, gf = readFract (f) f, bf = readFract (f) if debugging: - print rf, gf, bf + print(rf, gf, bf) r = toCol (rf) g = toCol (gf) b = toCol (bf) @@ -243,7 +243,7 @@ def drawFillCircle (f): if frameNo == wantedFrame: debugf("circle x = %d y = %d, r = %d\n", x, y, r) if debugging: - print " colour =", c + print(" colour =", c) pygame.draw.circle (screen, c, (x, flip (y)), r, 0) return f @@ -258,19 +258,19 @@ def drawPolygon (f): f, n = readShort (f) l = [] if debugging: - print "drawPolygon", n, + print("drawPolygon", n, end=' ') for i in range (n): f, xf = readFract (f) f, yf = readFract (f) if debugging: - print xf, yf, + print(xf, yf, end=' ') x = mults (resolution[0], xf) y = mults (resolution[1], yf) l += [[x, flip(y)]] f, t = readFract (f) if debugging: - print "draw polygon", l, "thickness", t + print("draw polygon", l, "thickness", t) if frameNo == wantedFrame: # pygame.draw.polygon(screen, c, l, 0) pass @@ -344,12 +344,12 @@ def drawFillPolygon (f): f, n = readShort (f) l = [] if debugging: - print "drawFillPolygon", n, + print("drawFillPolygon", n, end=' ') for i in range (n): f, xf = readFract (f) f, yf = readFract (f) if debugging: - print xf, yf, + print(xf, yf, end=' ') x = mults (resolution[0], xf) y = mults (resolution[1], yf) l += [[x, flip(y)]] @@ -357,8 +357,8 @@ def drawFillPolygon (f): f, c = readColour (f) if frameNo == wantedFrame: if debugging: - print "" - print "drawFillPolygon (colour =", c, " l =", l, ")" + print("") + print("drawFillPolygon (colour =", c, " l =", l, ")") pygame.draw.polygon (screen, c, l, 0) return f @@ -499,7 +499,7 @@ def readFile (name): header = header[:2] # print "readFile", header # printf ("(frameNo = %d, wantedFrame = %d)\n", frameNo, wantedFrame) - if call.has_key (header): + if header in call: f = call[header] (f) pc = f.pos header = struct.unpack ("3s", f.read (3))[0] @@ -588,9 +588,9 @@ def doSystem (s): global verbose if verbose: - print s + print(s) if os.system (s) != 0: - print "shell failed:", s + print("shell failed:", s) sys.exit (1) @@ -687,7 +687,7 @@ def finishMovie (): else: printf ("generating sound effect file\n") commandArgs = "" - print soxSound + print(soxSound) audio = "audio.wav" for t, s, n in soxSound: frameSound = "%6d-%3d.wav" % (t, n) @@ -783,7 +783,7 @@ def grRegisterColour (f): f, gf = readFract (f) f, bf = readFract (f) if debugging: - print rf, gf, bf + print(rf, gf, bf) r = toCol (rf) g = toCol (gf) b = toCol (bf) @@ -802,7 +802,7 @@ def doMessage (f): while int(b) != 0: text += b b = f.read (1) - print "Time:", frameTime, text + print("Time:", frameTime, text) def grMessage (f): @@ -813,7 +813,7 @@ def grMessage (f): while int(b) != 0: text += b b = f.read (1) - print "Time:", frameTime, text + print("Time:", frameTime, text) def grDrawPolygon (f): @@ -823,19 +823,19 @@ def grDrawPolygon (f): f, n = readShort (f) l = [] if debugging: - print "grDrawPolygon", n, + print("grDrawPolygon", n, end=' ') for i in range (n): f, xf = readFract (f) f, yf = readFract (f) if debugging: - print xf, yf, + print(xf, yf, end=' ') x = mults (1.0, xf) y = mults (1.0, yf) l += [[x, flip(y)]] f, t = readFract (f) if debugging: - print "draw polygon", l, "thickness", t + print("draw polygon", l, "thickness", t) return f @@ -847,12 +847,12 @@ def grDrawFillPolygon (f): f, n = readShort (f) l = [] if debugging: - print "grDrawFillPolygon", n, + print("grDrawFillPolygon", n, end=' ') for i in range (n): f, xf = readFract (f) f, yf = readFract (f) if debugging: - print xf, yf, + print(xf, yf, end=' ') x = mults (1.0, xf) y = mults (1.0, yf) l += [[x, flip(y)]] --- a/src/gcc/gm2/examples/pge/pgepygame.py +++ b/src/gcc/gm2/examples/pge/pgepygame.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 import os, pygame, string, sys, getopt, math, struct from pygame.locals import * @@ -33,14 +33,14 @@ maxColour = 0 # def printf (format, *args): - print str(format) % args, + print(str(format) % args, end=' ') # # error - issues an error message and exits. # def error (format, *args): - print str(format) % args, + print(str(format) % args, end=' ') sys.exit(1) @@ -51,7 +51,7 @@ def error (format, *args): def debugf (format, *args): global debugging if debugging: - print str(format) % args, + print(str(format) % args, end=' ') # @@ -96,7 +96,7 @@ def registerColour (connection): connection, bytes = get(connection, 3) r, g, b = struct.unpack('BBB', bytes) debugf("colour %d, %d, %d\n", r, g, b) - if not colTOid.has_key((r, g, b)): + if (r, g, b) not in colTOid: maxColour += 1 colTOid[(r, g, b)] = maxColour idTOcol[maxColour] = (r, g, b) @@ -200,7 +200,7 @@ def serveRPC (): data = connection.recv(1) debugf("received packet %c\n", data) if data: - if call.has_key(data): + if data in call: connection = call[data](connection) else: printf("error unexpected packet %c\n", data) --- a/src/gcc/gm2/examples/pge/runfig +++ b/src/gcc/gm2/examples/pge/runfig @@ -16,11 +16,11 @@ killall a.out rm *.png *.ms xfig $source -if python fig.py $source $modname ; then +if python3 fig.py $source $modname ; then if gm2 -c -I. -g -fiso $modname ; then rm `basename $modname .mod`.o make foo.o ; make foo - python pge.py & + python3 pge.py & sleep 1 ./a.out # ./produce-avi --- a/src/gcc/gm2/examples/pge/runthis +++ b/src/gcc/gm2/examples/pge/runthis @@ -1,3 +1,3 @@ -#!/bin/bash +#!/bin/sh -python max2code.py -v -o t.mod test.mxm +python3 max2code.py -v -o t.mod test.mxm --- a/src/gcc/gm2/examples/pge/t.py +++ b/src/gcc/gm2/examples/pge/t.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 import pygame from pygame.locals import * @@ -24,6 +24,6 @@ pygame.draw.circle (screen, blue, (100, 100), 100, 0) pygame.display.flip() -print "setting timer for 3 seconds" +print("setting timer for 3 seconds") time.sleep (3) -print "goodbye" +print("goodbye") --- a/src/gcc/gm2/examples/server/client.py +++ b/src/gcc/gm2/examples/server/client.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 import sys from socket import * @@ -12,4 +12,4 @@ s.connect((serverHost, serverPort)) while 1: s.send('h') data = s.recv(1024) - print data + print(data) --- a/src/gcc/gm2/examples/swig/dual/Makefile.in +++ b/src/gcc/gm2/examples/swig/dual/Makefile.in @@ -30,7 +30,7 @@ XGM2=../../../../xgm2 -B../../../../ XGPP=../../../../g++ -B../../../../ XGCC=../../../../xgcc -B../../../../ -PYTHON_VERSION=2.7 +PYTHON_VERSION=3 all: force @echo "or you can use 'make post-install' to build the examples after installing the compiler" @@ -55,7 +55,7 @@ post-install: clean -rpath `pwd` -lgm2 -lstdc++ -lpth -lm -o libfirst.la cp .libs/libfirst.so _libfirst.so - PYTHONPATH=.:$(srcdir) python $(srcdir)/testdual.py + PYTHONPATH=.:$(srcdir) python$(PYTHON_VERSION) $(srcdir)/testdual.py clean: force $(RM) -f *.o *.so a.out *.pyc *~ *_wrap* *.i *.lst *.cpp *.lo *.la --- a/src/gcc/gm2/examples/swig/dual/testdual.py +++ b/src/gcc/gm2/examples/swig/dual/testdual.py @@ -1,5 +1,5 @@ import libfirst -print "inside Python" +print("inside Python") libfirst.libfirst_out("calling out") -print "finishing Python" +print("finishing Python") --- a/src/gcc/gm2/examples/swig/exceptions/Makefile.in +++ b/src/gcc/gm2/examples/swig/exceptions/Makefile.in @@ -30,7 +30,7 @@ XGM2=../../../../xgm2 -B../../../../ XGPP=../../../../g++ XGCC=../../../../gcc -PYTHON_VERSION=2.7 +PYTHON_VERSION=3 all: force @echo "you can use 'make post-install' to build the examples after installing the compiler" @@ -54,8 +54,8 @@ post-install: clean -rpath `pwd` -lgm2 -lstdc++ -lpth -lm -o libtiny.la cp .libs/libtiny.so _libtiny.so - PYTHONPATH=.:$(srcdir) python $(srcdir)/testtiny.py - PYTHONPATH=.:$(srcdir) python $(srcdir)/stresstiny.py + PYTHONPATH=.:$(srcdir) python$(PYTHON_VERSION) $(srcdir)/testtiny.py + PYTHONPATH=.:$(srcdir) python$(PYTHON_VERSION) $(srcdir)/stresstiny.py clean: force $(RM) -f *.o *.so a.out *.pyc *~ *_wrap* tiny.py tiny.i *_m2.cpp --- a/src/gcc/gm2/examples/swig/exceptions/stresstiny.py +++ b/src/gcc/gm2/examples/swig/exceptions/stresstiny.py @@ -7,8 +7,8 @@ import sys for i in range (10): try: libtiny.doSomething (i) - print "error exception should have been thrown" + print("error exception should have been thrown") except: - print "caught exception in Python: i =", i + print(("caught exception in Python: i =", i)) -print "stresstiny passed" +print("stresstiny passed") --- a/src/gcc/gm2/examples/swig/exceptions/testtiny.py +++ b/src/gcc/gm2/examples/swig/exceptions/testtiny.py @@ -5,6 +5,6 @@ import libtiny try: libtiny.doSomething(1) - print "error : should not arrive here" + print("error : should not arrive here") except: - print "success: caught exception in Python" + print("success: caught exception in Python") --- a/src/gcc/gm2/examples/swig/full-strlib/Makefile.in +++ b/src/gcc/gm2/examples/swig/full-strlib/Makefile.in @@ -30,7 +30,7 @@ XGM2=../../../../xgm2 -B../../../.. -B../../../../stage1/gm2 XGPP=../../../../g++ XGCC=../../../../xgcc -PYTHON_VERSION=2.7 +PYTHON_VERSION=3 all: force @echo "or you can use 'make post-install' to build the examples after installing the compiler" @@ -56,9 +56,9 @@ strlib: force -rpath `pwd` -lgm2 -lstdc++ -lpth -lm -o libStrLib.la cp .libs/libStrLib.so _StrLib.so - PYTHONPATH=.:$(srcdir) python $(srcdir)/testlen.py - PYTHONPATH=.:$(srcdir) python $(srcdir)/testequ.py - PYTHONPATH=.:$(srcdir) python $(srcdir)/testcopy.py + PYTHONPATH=.:$(srcdir) python$(PYTHON_VERSION) $(srcdir)/testlen.py + PYTHONPATH=.:$(srcdir) python$(PYTHON_VERSION) $(srcdir)/testequ.py + PYTHONPATH=.:$(srcdir) python$(PYTHON_VERSION) $(srcdir)/testcopy.py numberio: force gm2 -I$(srcdir) -c -g -fswig $(srcdir)/../../../gm2-libs/NumberIO.mod @@ -75,7 +75,7 @@ numberio: force -rpath `pwd` -lgm2 -lstdc++ -lpth -lm -o libNumberIO.la cp .libs/libNumberIO.so _NumberIO.so - PYTHONPATH=.:$(srcdir) python $(srcdir)/testnum.py + PYTHONPATH=.:$(srcdir) python$(PYTHON_VERSION) $(srcdir)/testnum.py clean: force $(RM) -f *.o *.so a.out *.pyc *~ *_wrap* StrLib.py NumberIO.py *.i *_m2.cpp --- a/src/gcc/gm2/examples/swig/full-strlib/testcopy.py +++ b/src/gcc/gm2/examples/swig/full-strlib/testcopy.py @@ -1,7 +1,7 @@ import StrLib -print StrLib.StrLib_StrLen("hello") +print((StrLib.StrLib_StrLen("hello"))) a = "1234567890" # should really find a better method StrLib.StrLib_StrCopy("hello", a) # for creating, a, which is also -print a # compatible with ARRAY OF CHAR +print(a) # compatible with ARRAY OF CHAR --- a/src/gcc/gm2/examples/swig/full-strlib/testequ.py +++ b/src/gcc/gm2/examples/swig/full-strlib/testequ.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 # Copyright (C) 2010 # Free Software Foundation, Inc. @@ -22,23 +22,23 @@ import StrLib -print 'we are going to call StrLib.StrLib_StrLess("abcd", "pqr") and we expect 1 in return' -print StrLib.StrLib_StrLess("abcd", "pqr") +print('we are going to call StrLib.StrLib_StrLess("abcd", "pqr") and we expect 1 in return') +print((StrLib.StrLib_StrLess("abcd", "pqr"))) if StrLib.StrLib_StrLess("abcd", "pqr")==1: - print "passed" + print("passed") else: - print "failed" + print("failed") -print 'we are going to call StrLib.StrLib_StrLess("pqr", "abcd") and we expect 0 in return' -print StrLib.StrLib_StrLess("pqr", "abcd") +print('we are going to call StrLib.StrLib_StrLess("pqr", "abcd") and we expect 0 in return') +print((StrLib.StrLib_StrLess("pqr", "abcd"))) if StrLib.StrLib_StrLess("pqr", "abcd")==0: - print "passed" + print("passed") else: - print "failed" + print("failed") -print 'we are going to call StrLib.StrLib_IsSubString("abcdefghijk", "fghi") and we expect 1 in return' -print StrLib.StrLib_IsSubString("abcdefghijk", "fghi") +print('we are going to call StrLib.StrLib_IsSubString("abcdefghijk", "fghi") and we expect 1 in return') +print((StrLib.StrLib_IsSubString("abcdefghijk", "fghi"))) if StrLib.StrLib_IsSubString("abcdefghijk", "fghi")==1: - print "passed" + print("passed") else: - print "failed" + print("failed") --- a/src/gcc/gm2/examples/swig/full-strlib/testlen.py +++ b/src/gcc/gm2/examples/swig/full-strlib/testlen.py @@ -1,4 +1,4 @@ import StrLib -print 'we are going to call StrLib.StrLib_StrLen("hello world") and we expect 11 in return' -print StrLib.StrLib_StrLen("hello world") +print('we are going to call StrLib.StrLib_StrLen("hello world") and we expect 11 in return') +print((StrLib.StrLib_StrLen("hello world"))) --- a/src/gcc/gm2/examples/swig/full-strlib/testnum.py +++ b/src/gcc/gm2/examples/swig/full-strlib/testnum.py @@ -1,3 +1,3 @@ import NumberIO -print "1234 x 2 =", NumberIO.NumberIO_StrToInt("1234")*2 +print(("1234 x 2 =", NumberIO.NumberIO_StrToInt("1234")*2)) --- a/src/gcc/gm2/examples/swig/strio/Makefile.in +++ b/src/gcc/gm2/examples/swig/strio/Makefile.in @@ -30,7 +30,7 @@ XGM2=../../../../xgm2 -B../../../.. -B../../../../stage1/gm2 XGPP=../../../../g++ XGCC=../../../../xgcc -PYTHON_VERSION=2.7 +PYTHON_VERSION=3 all: force @echo "or you can use 'make post-install' to build the examples after installing the compiler" @@ -55,7 +55,7 @@ strio: force -rpath `pwd` -lgm2 -lstdc++ -lpth -lm -o libStrIO.la cp .libs/libStrIO.so _StrIO.so - PYTHONPATH=.:$(srcdir) python $(srcdir)/teststrio.py + PYTHONPATH=.:$(srcdir) python$(PYTHON_VERSION) $(srcdir)/teststrio.py clean: force $(RM) -f *.o *.so a.out *.pyc *~ *_wrap* StrIO.py *.i *_m2.cpp --- a/src/gcc/gm2/examples/swig/strlen/Makefile +++ b/src/gcc/gm2/examples/swig/strlen/Makefile @@ -1,11 +1,11 @@ -PYTHON_VERSION=2.5 +PYTHON_VERSION=3 all: force swig -python MyStrLib.i gcc -c -fPIC MyStrLib_wrap.c -I/usr/include/python$(PYTHON_VERSION) gm2 -fshared -c -fPIC -g MyStrLib.mod gm2 -fmakeall -I. -fPIC -g -shared -fshared MyStrLib.mod MyStrLib_wrap.o -o _MyStrLib.so - python testlen.py + python$(PYTHON_VERSION) testlen.py clean: force $(RM) -f *.o *.so a.out *.pyc *~ *_wrap* MyStrLib.py *.lst *_m2.cpp --- a/src/gcc/gm2/examples/swig/strlen/testlen.py +++ b/src/gcc/gm2/examples/swig/strlen/testlen.py @@ -1,4 +1,4 @@ import MyStrLib -print 'we are going to call MyStrLib.MyStrLib_StrLen("hello world") and we expect 11 in return' -print MyStrLib.MyStrLib_StrLen("hello world") +print('we are going to call MyStrLib.MyStrLib_StrLen("hello world") and we expect 11 in return') +print((MyStrLib.MyStrLib_StrLen("hello world"))) --- a/src/gcc/gm2/examples/swig/strlib/Makefile.in +++ b/src/gcc/gm2/examples/swig/strlib/Makefile.in @@ -30,7 +30,7 @@ XGM2=../../../../xgm2 -B../../../.. -B../../../../stage1/gm2 XGPP=../../../../g++ XGCC=../../../../xgcc -PYTHON_VERSION=2.7 +PYTHON_VERSION=3 all: force @echo "you can use 'make post-install' to build the examples after installing the compiler" @@ -54,7 +54,7 @@ post-install: clean -rpath `pwd` -lgm2 -lstdc++ -lpth -lm -o libStrLib.la cp .libs/libStrLib.so _libStrLib.so - PYTHONPATH=.:$(srcdir) python $(srcdir)/testlen.py + PYTHONPATH=.:$(srcdir) python$(PYTHON_VERSION) $(srcdir)/testlen.py clean: force $(RM) -f *.o *.so a.out *.pyc *~ *_wrap* libStrLib.py *.i *.lst libStrLib_m2.cpp --- a/src/gcc/gm2/examples/swig/strlib/testlen.py +++ b/src/gcc/gm2/examples/swig/strlib/testlen.py @@ -1,4 +1,4 @@ import libStrLib -print 'we are going to call libStrLib.libStrLib_StrLen("hello world") and we expect 11 in return' -print libStrLib.libStrLib_StrLen("hello world") +print('we are going to call libStrLib.libStrLib_StrLen("hello world") and we expect 11 in return') +print((libStrLib.libStrLib_StrLen("hello world"))) --- a/src/gcc/gm2/examples/swig/tiny/Makefile.in +++ b/src/gcc/gm2/examples/swig/tiny/Makefile.in @@ -30,7 +30,7 @@ XGM2=../../../../xgm2 -B../../../../ XGPP=../../../../g++ -B../../../../ XGCC=../../../../xgcc -B../../../../ -PYTHON_VERSION=2.7 +PYTHON_VERSION=3 all: force @echo "or you can use 'make post-install' to build the examples after installing the compiler" @@ -54,7 +54,7 @@ post-install: clean -rpath `pwd` -lgm2 -lstdc++ -lpth -lm -o libtiny.la cp .libs/libtiny.so _libtiny.so - PYTHONPATH=.:$(srcdir) python $(srcdir)/testtiny.py + PYTHONPATH=.:$(srcdir) python$(PYTHON_VERSION) $(srcdir)/testtiny.py clean: force $(RM) -f *.o *.so a.out *.pyc *~ *_wrap* tiny.py *.i *.lst *.cpp --- a/src/gcc/gm2/examples/swig/tiny/testtiny.py +++ b/src/gcc/gm2/examples/swig/tiny/testtiny.py @@ -1,5 +1,5 @@ import libtiny -print "inside Python" +print("inside Python") libtiny.libtiny_out("calling out") -print "finishing Python" +print("finishing Python") --- a/src/gcc/gm2/gm2-compiler/M2Error.mod +++ b/src/gcc/gm2/gm2-compiler/M2Error.mod @@ -709,7 +709,7 @@ BEGIN END ; IF FlushAll(head, TRUE) THEN - ExitOnHalt(1) ; + ExitOnHalt (1) ; HALT END END FlushErrors ; @@ -727,6 +727,7 @@ PROCEDURE FlushWarnings ; BEGIN IF FlushAll(head, FALSE) THEN + ExitOnHalt (1) END END FlushWarnings ; --- a/src/gcc/gm2/gm2-compiler/M2Options.def +++ b/src/gcc/gm2/gm2-compiler/M2Options.def @@ -77,7 +77,9 @@ EXPORT QUALIFIED SetReturnCheck, SetNilCheck, SetCaseCheck, SetStatistics, SetWall, CppProg, CppArg, CppCommandLine, CppRemember, SetDebugFunctionLineNumbers, DebugFunctionLineNumbers, - SetGenerateStatementNote, GenerateStatementNote ; + SetGenerateStatementNote, GenerateStatementNote, + SetUnusedVariableChecking, SetUnusedParameterChecking, + SetIndex, SetRange, SetWholeDiv ; VAR --- a/src/gcc/gm2/gm2-gcc/m2expr.c +++ b/src/gcc/gm2/gm2-gcc/m2expr.c @@ -2592,7 +2592,7 @@ m2expr_BuildBinaryForeachWordDo (location_t location, tree type, tree op1, } /* Append DIGIT to NUM, a number of PRECISION bits being read in base -BASE. */ + BASE. */ static int append_digit (unsigned HOST_WIDE_INT *low, HOST_WIDE_INT *high, @@ -2600,8 +2600,8 @@ append_digit (unsigned HOST_WIDE_INT *low, HOST_WIDE_INT *high, { unsigned int shift; int overflow; - HOST_WIDE_INT add_high, res_high; - unsigned HOST_WIDE_INT add_low, res_low; + HOST_WIDE_INT add_high, res_high, test_high; + unsigned HOST_WIDE_INT add_low, res_low, test_low; switch (base) { @@ -2643,13 +2643,16 @@ append_digit (unsigned HOST_WIDE_INT *low, HOST_WIDE_INT *high, else add_high = add_low = 0; - if (add_low + digit < add_low) + test_low = add_low + digit; + if (test_low < add_low) add_high++; add_low += digit; - if (res_low + add_low < res_low) + test_low = res_low + add_low; + if (test_low < res_low) add_high++; - if (res_high + add_high < res_high) + test_high = res_high + add_high; + if (test_high < res_high) overflow = TRUE; *low = res_low + add_low; @@ -2711,15 +2714,16 @@ m2expr_interpret_integer (const char *str, unsigned int base, } /* Append DIGIT to NUM, a number of PRECISION bits being read in base -BASE. */ + BASE. */ + static int append_m2_digit (unsigned int *low, int *high, unsigned int digit, unsigned int base) { unsigned int shift; int overflow; - int add_high, res_high; - unsigned int add_low, res_low; + int add_high, res_high, test_high; + unsigned int add_low, res_low, test_low; switch (base) { @@ -2761,13 +2765,16 @@ append_m2_digit (unsigned int *low, int *high, unsigned int digit, else add_high = add_low = 0; - if (add_low + digit < add_low) + test_low = add_low + digit; + if (test_low < add_low) add_high++; add_low += digit; - if (res_low + add_low < res_low) + test_low = res_low + add_low; + if (test_low < res_low) add_high++; - if (res_high + add_high < res_high) + test_high = res_high + add_high; + if (test_high < res_high) overflow = TRUE; *low = res_low + add_low; @@ -2777,10 +2784,10 @@ append_m2_digit (unsigned int *low, int *high, unsigned int digit, } /* interpret_m2_integer convert an integer constant into two integer -constants. Heavily borrowed from gcc/cppexp.c. Note that this is a -copy of the above code except that it uses `int' rather than -HOST_WIDE_INT to allow gm2 to determine what Modula-2 base type to -use for this constant. */ + constants. Heavily borrowed from gcc/cppexp.c. Note that this is a + copy of the above code except that it uses `int' rather than + HOST_WIDE_INT to allow gm2 to determine what Modula-2 base type to + use for this constant. */ int m2expr_interpret_m2_integer (const char *str, unsigned int base, --- a/src/gcc/gm2/gm2-lang.c +++ b/src/gcc/gm2/gm2-lang.c @@ -259,17 +259,15 @@ gm2_langhook_handle_option ( case OPT_fnil: M2Options_SetNilCheck (value); return 1; -#if 0 - case OPT_fwholediv: - M2Options_SetWholeDiv (value); - return 1; - case OPT_findex: - M2Options_SetIndex (value); - return 1; - case OPT_frange: - M2Options_SetRange (value); - return 1; -#endif + case OPT_fwholediv: + M2Options_SetWholeDiv (value); + return 1; + case OPT_findex: + M2Options_SetIndex (value); + return 1; + case OPT_frange: + M2Options_SetRange (value); + return 1; case OPT_ffloatvalue: M2Options_SetFloatValueCheck (value); return 1; --- a/src/gcc/gm2/gm2-libs-ch/dtoa.c +++ b/src/gcc/gm2/gm2-libs-ch/dtoa.c @@ -118,7 +118,7 @@ dtoa_calcmaxsig (char *p, int ndigits) return strlen (p) + x; else { - strncpy (o, o + 1, ndigits - (o - p)); + memmove (o, o + 1, ndigits - (o - p)); return o - p + x; } } @@ -167,7 +167,7 @@ dtoa_calcsign (char *p, int str_size) { if (p[0] == '-') { - strncpy (p, p + 1, str_size - 1); + memmove (p, p + 1, str_size - 1); return TRUE; } else --- a/src/gcc/gm2/gm2-libs/Builtins.def +++ b/src/gcc/gm2/gm2-libs/Builtins.def @@ -1,3 +1,22 @@ +(* Builtins.def defines all gm2 built-in functions. + +Copyright (C) 2001-2019 Free Software Foundation, Inc. +Contributed by Gaius Mulley . + +This file is part of GNU Modula-2. + +GNU Modula-2 is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of the +License, or (at your option) any later version. + +GNU Modula-2 is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with GNU Modula-2. If not, see . *) DEFINITION MODULE Builtins ; @@ -177,18 +196,6 @@ PROCEDURE __BUILTIN__ strcspn (s, accept: ADDRESS) : CARDINAL ; PROCEDURE __BUILTIN__ strchr (s: ADDRESS; c: INTEGER) : ADDRESS ; PROCEDURE __BUILTIN__ strrchr (s: ADDRESS; c: INTEGER) : ADDRESS ; -(* - longjmp - this GCC builtin restricts the val to always 1. -*) -(* do not use these two builtins, as gcc, only really - anticipates that the Ada front end should use them - and it only uses them in its runtime exception handling. - We leave them here in the hope that someday they will - behave more like their libc counterparts. *) - -PROCEDURE __BUILTIN__ longjmp (env: ADDRESS; val: INTEGER) ; -PROCEDURE __BUILTIN__ setjmp (env: ADDRESS) : INTEGER ; - (* frame_address - returns the address of the frame. --- a/src/gcc/gm2/gm2-libs/Builtins.mod +++ b/src/gcc/gm2/gm2-libs/Builtins.mod @@ -634,17 +634,6 @@ BEGIN RETURN -1.0 END huge_valf ; -PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_longjmp)) longjmp (env: ADDRESS; val: INTEGER) ; -BEGIN - (* empty, replaced internally by gcc *) -END longjmp ; - -PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_setjmp)) setjmp (env: ADDRESS) : INTEGER ; -BEGIN - (* empty, replaced internally by gcc *) - RETURN 0 (* keeps gm2 happy *) -END setjmp ; - (* frame_address - returns the address of the frame. --- a/src/gcc/gm2/gm2-libs/FIO.mod +++ b/src/gcc/gm2/gm2-libs/FIO.mod @@ -630,21 +630,21 @@ VAR n: INTEGER ; p: POINTER TO CHAR ; BEGIN - IF f#Error + IF f # Error THEN - CheckAccess(f, openedforread, FALSE) ; - n := ReadFromBuffer(f, a, nBytes) ; - IF n<0 + CheckAccess (f, openedforread, FALSE) ; + n := ReadFromBuffer (f, a, nBytes) ; + IF n <= 0 THEN - RETURN( 0 ) + RETURN 0 ELSE p := a ; - INC(p, n) ; - SetEndOfLine(f, p^) ; - RETURN( n ) + INC (p, n-1) ; + SetEndOfLine (f, p^) ; + RETURN n END ELSE - RETURN( 0 ) + RETURN 0 END END ReadNBytes ; --- a/src/gcc/gm2/gm2-libs/config-host.in +++ b/src/gcc/gm2/gm2-libs/config-host.in @@ -33,14 +33,14 @@ AC_HEADER_SYS_WAIT AC_CHECK_HEADER([math.h], [AC_DEFINE([HAVE_MATH_H], [1], [have math.h])]) -AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h \ - time.h \ - fcntl.h unistd.h sys/file.h sys/time.h sys/mman.h \ - sys/resource.h sys/param.h sys/times.h sys/stat.h \ - sys/wait.h sys/ioctl.h errno.h sys/errno.h \ - pwd.h direct.h dirent.h signal.h malloc.h langinfo.h \ - pthread.h stdarg.h stdio.h sys/types.h termios.h \ - netinet/in.h netdb.h) +AC_CHECK_HEADERS([limits.h stddef.h string.h strings.h stdlib.h \ + time.h \ + fcntl.h unistd.h sys/file.h sys/time.h sys/mman.h \ + sys/resource.h sys/param.h sys/times.h sys/stat.h \ + sys/wait.h sys/ioctl.h errno.h sys/errno.h \ + pwd.h direct.h dirent.h signal.h malloc.h langinfo.h \ + pthread.h stdarg.h stdio.h sys/types.h termios.h \ + netinet/in.h netdb.h]) # Checks for typedefs, structures, and compiler characteristics. --- a/src/gcc/gm2/lang-specs.h +++ b/src/gcc/gm2/lang-specs.h @@ -31,7 +31,7 @@ Boston, MA 02110-1301, USA. */ %{MT*} %{MF*} -quiet " #define GM2CC(INPUT,OUTPUT) \ - "%{!fno-exceptions:cc1plus;:cc1} " GM2CC_OPTIONS " " INPUT " -o %b_m2.s \n\ + "%{!fno-exceptions:cc1plus;:cc1} " GM2CC_OPTIONS " " INPUT " -o %d%b_m2.s \n\ " AS("%b_m2.s",OUTPUT) " " #define GM2LCC(OBJECT,LST) \ --- a/src/gcc/gm2/lang.opt +++ b/src/gcc/gm2/lang.opt @@ -82,6 +82,18 @@ fcase Modula-2 turns on runtime checking to check whether a CASE statement requires an ELSE clause when on was not specified +frange +Modula-2 +turns on all range checking for numerical values + +findex +Modula-2 +turns on all range checking for numerical values + +fwholediv +Modula-2 +turns on all division and modulus by zero checking for ordinal values + ffloatvalue Modula-2 turns on runtime checking to check whether a floating point number is about to exceed range --- a/src/gcc/gm2/m2.flex +++ b/src/gcc/gm2/m2.flex @@ -351,10 +351,10 @@ static void handleColumn (void) static void handleDate (void) { - time_t clock = time((long *)0); - char *sdate = ctime(&clock); - char *s = (char *)alloca(strlen(sdate)+2+1); - char *p = index(sdate, '\n'); + time_t clock = time ((time_t *)0); + char *sdate = ctime (&clock); + char *s = (char *) alloca (strlen (sdate) + 2 + 1); + char *p = index (sdate, '\n'); if (p != NULL) { *p = (char) 0; @@ -362,7 +362,7 @@ static void handleDate (void) strcpy(s, "\""); strcat(s, sdate); strcat(s, "\""); - M2LexBuf_AddTokCharStar(M2Reserved_stringtok, s); + M2LexBuf_AddTokCharStar (M2Reserved_stringtok, s); } /* --- a/src/gcc/gm2/mc-boot-ch/Gdtoa.c +++ b/src/gcc/gm2/mc-boot-ch/Gdtoa.c @@ -100,7 +100,7 @@ dtoa_calcmaxsig (char *p, int ndigits) return strlen (p) + x; else { - strncpy (o, o + 1, ndigits - (o - p)); + memmove (o, o + 1, ndigits - (o - p)); return o - p + x; } } @@ -149,7 +149,7 @@ dtoa_calcsign (char *p, int str_size) { if (p[0] == '-') { - strncpy (p, p + 1, str_size - 1); + memmove (p, p + 1, str_size - 1); return TRUE; } else --- a/src/gcc/gm2/mc-boot/GArgs.c +++ b/src/gcc/gm2/mc-boot/GArgs.c @@ -79,7 +79,9 @@ unsigned int Args_GetArg (char *a, unsigned int _a_high, unsigned int i) } } if (j <= High) - a[j] = ASCII_nul; + { + a[j] = ASCII_nul; + } return i < UnixArgs_ArgC; } --- a/src/gcc/gm2/mc-boot/GCmdArgs.c +++ b/src/gcc/gm2/mc-boot/GCmdArgs.c @@ -103,7 +103,9 @@ static unsigned int GetNextArg (char *CmdLine_, unsigned int _CmdLine_high, unsi ArgIndex = 0; /* Skip spaces */ while (((*CmdIndex) < HighC) && (Space (CmdLine[(*CmdIndex)]))) - (*CmdIndex) += 1; + { + (*CmdIndex) += 1; + } if ((*CmdIndex) < HighC) { /* avoid gcc warning by using compound statement even if not strictly necessary. */ @@ -116,19 +118,27 @@ static unsigned int GetNextArg (char *CmdLine_, unsigned int _CmdLine_high, unsi } else if (DoubleQuote (CmdLine[(*CmdIndex)])) { + /* avoid dangling else. */ /* Skip over the double quote */ (*CmdIndex) += 1; CopyUntil ((char *) CmdLine, _CmdLine_high, CmdIndex, HighC, (char *) Arg, _Arg_high, &ArgIndex, HighA, dquote); (*CmdIndex) += 1; } else - CopyUntilSpace ((char *) CmdLine, _CmdLine_high, CmdIndex, HighC, (char *) Arg, _Arg_high, &ArgIndex, HighA); + { + /* avoid dangling else. */ + CopyUntilSpace ((char *) CmdLine, _CmdLine_high, CmdIndex, HighC, (char *) Arg, _Arg_high, &ArgIndex, HighA); + } } /* Skip spaces */ while (((*CmdIndex) < HighC) && (Space (CmdLine[(*CmdIndex)]))) - (*CmdIndex) += 1; + { + (*CmdIndex) += 1; + } if (ArgIndex < HighA) - Arg[ArgIndex] = ASCII_nul; + { + Arg[ArgIndex] = ASCII_nul; + } return (*CmdIndex) < HighC; } @@ -145,7 +155,9 @@ static void CopyUntilSpace (char *From_, unsigned int _From_high, unsigned int * memcpy (From, From_, _From_high+1); while ((((*FromIndex) < FromHigh) && ((*ToIndex) < ToHigh)) && (! (Space (From[(*FromIndex)])))) - CopyChar ((char *) From, _From_high, FromIndex, FromHigh, (char *) To, _To_high, ToIndex, ToHigh); + { + CopyChar ((char *) From, _From_high, FromIndex, FromHigh, (char *) To, _To_high, ToIndex, ToHigh); + } } @@ -161,7 +173,9 @@ static void CopyUntil (char *From_, unsigned int _From_high, unsigned int *FromI memcpy (From, From_, _From_high+1); while ((((*FromIndex) < FromHigh) && ((*ToIndex) < ToHigh)) && (From[(*FromIndex)] != UntilChar)) - CopyChar ((char *) From, _From_high, FromIndex, FromHigh, (char *) To, _To_high, ToIndex, ToHigh); + { + CopyChar ((char *) From, _From_high, FromIndex, FromHigh, (char *) To, _To_high, ToIndex, ToHigh); + } } @@ -181,8 +195,10 @@ static void CopyChar (char *From_, unsigned int _From_high, unsigned int *FromIn if (((*FromIndex) < FromHigh) && ((*ToIndex) < ToHigh)) { if (Escape (From[(*FromIndex)])) - /* Skip over Escape Character */ - (*FromIndex) += 1; + { + /* Skip over Escape Character */ + (*FromIndex) += 1; + } if ((*FromIndex) < FromHigh) { /* Copy Normal Character */ @@ -260,7 +276,9 @@ unsigned int CmdArgs_Narg (char *CmdLine_, unsigned int _CmdLine_high) ArgNo = 0; while (CmdArgs_GetArg ((char *) CmdLine, _CmdLine_high, ArgNo, (char *) &a.array[0], 1000)) - ArgNo += 1; + { + ArgNo += 1; + } /* IF ArgNo>0 THEN --- a/src/gcc/gm2/mc-boot/GDebug.c +++ b/src/gcc/gm2/mc-boot/GDebug.c @@ -133,13 +133,16 @@ void Debug_DebugString (char *a_, unsigned int _a_high) } else if (a[n+1] == '\\') { + /* avoid dangling else. */ StdIO_Write ('\\'); n += 1; } } } else - StdIO_Write (a[n]); + { + StdIO_Write (a[n]); + } n += 1; } } --- a/src/gcc/gm2/mc-boot/GDynamicStrings.c +++ b/src/gcc/gm2/mc-boot/GDynamicStrings.c @@ -693,7 +693,9 @@ static void DumpStringInfo (DynamicStrings_String s, unsigned int i) static void doDSdbEnter (void) { if (CheckOn) - DynamicStrings_PushAllocation (); + { + DynamicStrings_PushAllocation (); + } } @@ -704,7 +706,9 @@ static void doDSdbEnter (void) static void doDSdbExit (DynamicStrings_String s) { if (CheckOn) - s = DynamicStrings_PopAllocationExemption (TRUE, s); + { + s = DynamicStrings_PopAllocationExemption (TRUE, s); + } } @@ -748,9 +752,13 @@ static unsigned int Capture (DynamicStrings_String s) static unsigned int Min (unsigned int a, unsigned int b) { if (a < b) - return a; + { + return a; + } else - return b; + { + return b; + } } @@ -761,9 +769,13 @@ static unsigned int Min (unsigned int a, unsigned int b) static unsigned int Max (unsigned int a, unsigned int b) { if (a > b) - return a; + { + return a; + } else - return b; + { + return b; + } } @@ -792,9 +804,13 @@ static void writeCstring (void * a) int i; if (a == NULL) - writeString ((char *) "(null)", 6); + { + writeString ((char *) "(null)", 6); + } else - i = libc_write (1, a, libc_strlen (a)); + { + i = libc_write (1, a, libc_strlen (a)); + } } @@ -814,7 +830,7 @@ static void writeCard (unsigned int c) } else { - ch = (char) (((unsigned int) ('0'))+c); + ch = ((char) ( ((unsigned int) ('0'))+c)); i = libc_write (1, &ch, (size_t) 1); } } @@ -836,12 +852,14 @@ static void writeLongcard (long unsigned int l) } else if (l < 10) { - ch = (char) (((unsigned int) ('0'))+((unsigned int ) (l))); + /* avoid dangling else. */ + ch = ((char) ( ((unsigned int) ('0'))+((unsigned int ) (l)))); i = libc_write (1, &ch, (size_t) 1); } else if (l < 16) { - ch = (char) ((((unsigned int) ('a'))+((unsigned int ) (l)))-10); + /* avoid dangling else. */ + ch = ((char) (( ((unsigned int) ('a'))+((unsigned int ) (l)))-10)); i = libc_write (1, &ch, (size_t) 1); } } @@ -906,7 +924,9 @@ static DynamicStrings_String AssignDebug (DynamicStrings_String s, char *file_, static unsigned int IsOn (DynamicStrings_String list, DynamicStrings_String s) { while ((list != s) && (list != NULL)) - list = list->debug.next; + { + list = list->debug.next; + } return list == s; } @@ -939,17 +959,25 @@ static void SubFrom (DynamicStrings_String *list, DynamicStrings_String s) DynamicStrings_String p; if ((*list) == s) - (*list) = s->debug.next; + { + (*list) = s->debug.next; + } else { p = (*list); while ((p->debug.next != NULL) && (p->debug.next != s)) - p = p->debug.next; + { + p = p->debug.next; + } if (p->debug.next == s) - p->debug.next = s->debug.next; + { + p->debug.next = s->debug.next; + } else - /* not found, quit */ - return; + { + /* not found, quit */ + return; + } } s->debug.next = NULL; } @@ -989,9 +1017,13 @@ static unsigned int IsOnAllocated (DynamicStrings_String s) f = frameHead; do { if (IsOn (f->alloc, s)) - return TRUE; + { + return TRUE; + } else - f = f->next; + { + f = f->next; + } } while (! (f == NULL)); return FALSE; } @@ -1009,9 +1041,13 @@ static unsigned int IsOnDeallocated (DynamicStrings_String s) f = frameHead; do { if (IsOn (f->dealloc, s)) - return TRUE; + { + return TRUE; + } else - f = f->next; + { + f = f->next; + } } while (! (f == NULL)); return FALSE; } @@ -1034,7 +1070,9 @@ static void SubAllocated (DynamicStrings_String s) return; } else - f = f->next; + { + f = f->next; + } } while (! (f == NULL)); } @@ -1056,7 +1094,9 @@ static void SubDeallocated (DynamicStrings_String s) return; } else - f = f->next; + { + f = f->next; + } } while (! (f == NULL)); } @@ -1079,8 +1119,10 @@ static void SubDebugInfo (DynamicStrings_String s) AddDeallocated (s); } else - /* string has not been allocated */ - Assertion_Assert (! DebugOn); + { + /* string has not been allocated */ + Assertion_Assert (! DebugOn); + } } @@ -1095,7 +1137,9 @@ static void AddDebugInfo (DynamicStrings_String s) s->debug.line = 0; s->debug.proc = NULL; if (CheckOn) - AddAllocated (s); + { + AddAllocated (s); + } } @@ -1131,7 +1175,9 @@ static void ConcatContents (Contents *c, char *a_, unsigned int _a_high, unsigne (*c).next = AssignDebug ((*c).next, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 701, (char *) "ConcatContents", 14); } else - (*c).len = i; + { + (*c).len = i; + } } @@ -1144,7 +1190,9 @@ static void DeallocateCharStar (DynamicStrings_String s) if ((s != NULL) && (s->head != NULL)) { if (s->head->charStarUsed && (s->head->charStar != NULL)) - Storage_DEALLOCATE (&s->head->charStar, s->head->charStarSize); + { + Storage_DEALLOCATE (&s->head->charStar, s->head->charStarSize); + } s->head->charStarUsed = FALSE; s->head->charStar = NULL; s->head->charStarSize = 0; @@ -1160,7 +1208,9 @@ static void DeallocateCharStar (DynamicStrings_String s) static DynamicStrings_String CheckPoisoned (DynamicStrings_String s) { if (((PoisonOn && (s != NULL)) && (s->head != NULL)) && (s->head->state == poisoned)) - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } return s; } @@ -1172,9 +1222,13 @@ static DynamicStrings_String CheckPoisoned (DynamicStrings_String s) static void MarkInvalid (DynamicStrings_String s) { if (PoisonOn) - s = CheckPoisoned (s); + { + s = CheckPoisoned (s); + } if (s->head != NULL) - s->head->charStarValid = FALSE; + { + s->head->charStarValid = FALSE; + } } @@ -1210,7 +1264,9 @@ static void ConcatContentsAddress (Contents *c, void * a, unsigned int h) ConcatContentsAddress (&(*c).next->contents, (void *) p, h-j); AddDebugInfo ((*c).next); if (TraceOn) - (*c).next = AssignDebug ((*c).next, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 896, (char *) "ConcatContentsAddress", 21); + { + (*c).next = AssignDebug ((*c).next, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 896, (char *) "ConcatContentsAddress", 21); + } } else { @@ -1245,11 +1301,15 @@ static DynamicStrings_String AddToGarbage (DynamicStrings_String a, DynamicStrin { c = a; while (c->head->garbage != NULL) - c = c->head->garbage; + { + c = c->head->garbage; + } c->head->garbage = b; b->head->state = onlist; if (CheckOn) - SubDebugInfo (b); + { + SubDebugInfo (b); + } } return a; } @@ -1262,11 +1322,19 @@ static DynamicStrings_String AddToGarbage (DynamicStrings_String a, DynamicStrin static unsigned int IsOnGarbage (DynamicStrings_String e, DynamicStrings_String s) { if ((e != NULL) && (s != NULL)) - while (e->head->garbage != NULL) - if (e->head->garbage == s) - return TRUE; - else - e = e->head->garbage; + { + while (e->head->garbage != NULL) + { + if (e->head->garbage == s) + { + return TRUE; + } + else + { + e = e->head->garbage; + } + } + } return FALSE; } @@ -1331,11 +1399,19 @@ static void DumpStringSynopsis (DynamicStrings_String s) writeString ((char *) " ", 1); DumpState (s); if (IsOnAllocated (s)) - writeString ((char *) " globally allocated", 19); + { + writeString ((char *) " globally allocated", 19); + } else if (IsOnDeallocated (s)) - writeString ((char *) " globally deallocated", 21); + { + /* avoid dangling else. */ + writeString ((char *) " globally deallocated", 21); + } else - writeString ((char *) " globally unknown", 17); + { + /* avoid dangling else. */ + writeString ((char *) " globally unknown", 17); + } writeLn (); } @@ -1407,7 +1483,9 @@ DynamicStrings_String DynamicStrings_InitString (char *a_, unsigned int _a_high) s->head->state = inuse; AddDebugInfo (s); if (TraceOn) - s = AssignDebug (s, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 737, (char *) "InitString", 10); + { + s = AssignDebug (s, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 737, (char *) "InitString", 10); + } return s; } @@ -1422,23 +1500,32 @@ DynamicStrings_String DynamicStrings_KillString (DynamicStrings_String s) DynamicStrings_String t; if (PoisonOn) - s = CheckPoisoned (s); + { + s = CheckPoisoned (s); + } if (s != NULL) { if (CheckOn) { /* avoid gcc warning by using compound statement even if not strictly necessary. */ if (IsOnAllocated (s)) - SubAllocated (s); + { + SubAllocated (s); + } else if (IsOnDeallocated (s)) - SubDeallocated (s); + { + /* avoid dangling else. */ + SubDeallocated (s); + } } if (s->head != NULL) { s->head->state = poisoned; s->head->garbage = DynamicStrings_KillString (s->head->garbage); if (! PoisonOn) - DeallocateCharStar (s); + { + DeallocateCharStar (s); + } if (! PoisonOn) { Storage_DEALLOCATE ((void **) &s->head, sizeof (descriptor)); @@ -1447,7 +1534,9 @@ DynamicStrings_String DynamicStrings_KillString (DynamicStrings_String s) } t = DynamicStrings_KillString (s->contents.next); if (! PoisonOn) - Storage_DEALLOCATE ((void **) &s, sizeof (stringRecord)); + { + Storage_DEALLOCATE ((void **) &s, sizeof (stringRecord)); + } } return NULL; } @@ -1462,7 +1551,9 @@ DynamicStrings_String DynamicStrings_KillString (DynamicStrings_String s) void DynamicStrings_Fin (DynamicStrings_String s) { if ((DynamicStrings_KillString (s)) != NULL) - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } } @@ -1478,7 +1569,9 @@ DynamicStrings_String DynamicStrings_InitStringCharStar (void * a) s->contents.len = 0; s->contents.next = NULL; if (a != NULL) - ConcatContentsAddress (&s->contents, a, (unsigned int) libc_strlen (a)); + { + ConcatContentsAddress (&s->contents, a, (unsigned int) libc_strlen (a)); + } Storage_ALLOCATE ((void **) &s->head, sizeof (descriptor)); s->head->charStarUsed = FALSE; s->head->charStar = NULL; @@ -1488,7 +1581,9 @@ DynamicStrings_String DynamicStrings_InitStringCharStar (void * a) s->head->state = inuse; AddDebugInfo (s); if (TraceOn) - s = AssignDebug (s, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 936, (char *) "InitStringCharStar", 18); + { + s = AssignDebug (s, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 936, (char *) "InitStringCharStar", 18); + } return s; } @@ -1509,7 +1604,9 @@ DynamicStrings_String DynamicStrings_InitStringChar (char ch) a.array[1] = ASCII_nul; s = DynamicStrings_InitString ((char *) &a.array[0], 1); if (TraceOn) - s = AssignDebug (s, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 956, (char *) "InitStringChar", 14); + { + s = AssignDebug (s, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 956, (char *) "InitStringChar", 14); + } return s; } @@ -1521,9 +1618,13 @@ DynamicStrings_String DynamicStrings_InitStringChar (char ch) DynamicStrings_String DynamicStrings_Mark (DynamicStrings_String s) { if (PoisonOn) - s = CheckPoisoned (s); + { + s = CheckPoisoned (s); + } if ((s != NULL) && (s->head->state == inuse)) - s->head->state = marked; + { + s->head->state = marked; + } return s; } @@ -1535,9 +1636,13 @@ DynamicStrings_String DynamicStrings_Mark (DynamicStrings_String s) unsigned int DynamicStrings_Length (DynamicStrings_String s) { if (s == NULL) - return 0; + { + return 0; + } else - return s->contents.len+(DynamicStrings_Length (s->contents.next)); + { + return s->contents.len+(DynamicStrings_Length (s->contents.next)); + } } @@ -1555,22 +1660,29 @@ DynamicStrings_String DynamicStrings_ConCat (DynamicStrings_String a, DynamicStr b = CheckPoisoned (b); } if (a == b) - return DynamicStrings_ConCat (a, DynamicStrings_Mark (DynamicStrings_Dup (b))); + { + return DynamicStrings_ConCat (a, DynamicStrings_Mark (DynamicStrings_Dup (b))); + } else if (a != NULL) { + /* avoid dangling else. */ a = AddToGarbage (a, b); MarkInvalid (a); t = a; while (b != NULL) { while ((t->contents.len == MaxBuf) && (t->contents.next != NULL)) - t = t->contents.next; + { + t = t->contents.next; + } ConcatContents (&t->contents, (char *) &b->contents.buf.array[0], (MaxBuf-1), b->contents.len, 0); b = b->contents.next; } } if ((a == NULL) && (b != NULL)) - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } return a; } @@ -1588,13 +1700,17 @@ DynamicStrings_String DynamicStrings_ConCatChar (DynamicStrings_String a, char c DynamicStrings_String t; if (PoisonOn) - a = CheckPoisoned (a); + { + a = CheckPoisoned (a); + } b.array[0] = ch; b.array[1] = ASCII_nul; t = a; MarkInvalid (a); while ((t->contents.len == MaxBuf) && (t->contents.next != NULL)) - t = t->contents.next; + { + t = t->contents.next; + } ConcatContents (&t->contents, (char *) &b.array[0], 1, 1, 0); return a; } @@ -1628,10 +1744,14 @@ DynamicStrings_String DynamicStrings_Assign (DynamicStrings_String a, DynamicStr DynamicStrings_String DynamicStrings_Dup (DynamicStrings_String s) { if (PoisonOn) - s = CheckPoisoned (s); + { + s = CheckPoisoned (s); + } s = DynamicStrings_Assign (DynamicStrings_InitString ((char *) "", 0), s); if (TraceOn) - s = AssignDebug (s, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 1152, (char *) "Dup", 3); + { + s = AssignDebug (s, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 1152, (char *) "Dup", 3); + } return s; } @@ -1649,7 +1769,9 @@ DynamicStrings_String DynamicStrings_Add (DynamicStrings_String a, DynamicString } a = DynamicStrings_ConCat (DynamicStrings_ConCat (DynamicStrings_InitString ((char *) "", 0), a), b); if (TraceOn) - a = AssignDebug (a, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 1172, (char *) "Add", 3); + { + a = AssignDebug (a, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 1172, (char *) "Add", 3); + } return a; } @@ -1676,11 +1798,17 @@ unsigned int DynamicStrings_Equal (DynamicStrings_String a, DynamicStrings_Strin while (i < a->contents.len) { if (a->contents.buf.array[i] != a->contents.buf.array[i]) - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } if (b->contents.buf.array[i] != b->contents.buf.array[i]) - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } if (a->contents.buf.array[i] != b->contents.buf.array[i]) - return FALSE; + { + return FALSE; + } i += 1; } a = a->contents.next; @@ -1689,7 +1817,9 @@ unsigned int DynamicStrings_Equal (DynamicStrings_String a, DynamicStrings_Strin return TRUE; } else - return FALSE; + { + return FALSE; + } } @@ -1703,10 +1833,14 @@ unsigned int DynamicStrings_EqualCharStar (DynamicStrings_String s, void * a) DynamicStrings_String t; if (PoisonOn) - s = CheckPoisoned (s); + { + s = CheckPoisoned (s); + } t = DynamicStrings_InitStringCharStar (a); if (TraceOn) - t = AssignDebug (t, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 1237, (char *) "EqualCharStar", 13); + { + t = AssignDebug (t, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 1237, (char *) "EqualCharStar", 13); + } t = AddToGarbage (t, s); if (DynamicStrings_Equal (t, s)) { @@ -1735,10 +1869,14 @@ unsigned int DynamicStrings_EqualArray (DynamicStrings_String s, char *a_, unsig memcpy (a, a_, _a_high+1); if (PoisonOn) - s = CheckPoisoned (s); + { + s = CheckPoisoned (s); + } t = DynamicStrings_InitString ((char *) a, _a_high); if (TraceOn) - t = AssignDebug (t, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 1267, (char *) "EqualArray", 10); + { + t = AssignDebug (t, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 1267, (char *) "EqualArray", 10); + } t = AddToGarbage (t, s); if (DynamicStrings_Equal (t, s)) { @@ -1760,13 +1898,21 @@ unsigned int DynamicStrings_EqualArray (DynamicStrings_String s, char *a_, unsig DynamicStrings_String DynamicStrings_Mult (DynamicStrings_String s, unsigned int n) { if (PoisonOn) - s = CheckPoisoned (s); + { + s = CheckPoisoned (s); + } if (n <= 0) - s = AddToGarbage (DynamicStrings_InitString ((char *) "", 0), s); + { + s = AddToGarbage (DynamicStrings_InitString ((char *) "", 0), s); + } else - s = DynamicStrings_ConCat (DynamicStrings_Mult (s, n-1), s); + { + s = DynamicStrings_ConCat (DynamicStrings_Mult (s, n-1), s); + } if (TraceOn) - s = AssignDebug (s, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 1299, (char *) "Mult", 4); + { + s = AssignDebug (s, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 1299, (char *) "Mult", 4); + } return s; } @@ -1792,54 +1938,76 @@ DynamicStrings_String DynamicStrings_Slice (DynamicStrings_String s, int low, in int o; if (PoisonOn) - s = CheckPoisoned (s); + { + s = CheckPoisoned (s); + } if (low < 0) - low = ((int ) (DynamicStrings_Length (s)))+low; + { + low = ((int ) (DynamicStrings_Length (s)))+low; + } if (high <= 0) - high = ((int ) (DynamicStrings_Length (s)))+high; + { + high = ((int ) (DynamicStrings_Length (s)))+high; + } else - /* make sure high is <= Length (s) */ - high = Min (DynamicStrings_Length (s), (unsigned int) high); + { + /* make sure high is <= Length (s) */ + high = Min (DynamicStrings_Length (s), (unsigned int) high); + } d = DynamicStrings_InitString ((char *) "", 0); d = AddToGarbage (d, s); o = 0; t = d; while (s != NULL) - if (low < (o+((int ) (s->contents.len)))) - if (o > high) - s = NULL; - else + { + if (low < (o+((int ) (s->contents.len)))) { - /* found sliceable unit */ - if (low < o) - start = 0; + if (o > high) + { + s = NULL; + } else - start = low-o; - end = Max (Min (MaxBuf, (unsigned int) high-o), 0); - while (t->contents.len == MaxBuf) { - if (t->contents.next == NULL) + /* found sliceable unit */ + if (low < o) { - Storage_ALLOCATE ((void **) &t->contents.next, sizeof (stringRecord)); - t->contents.next->head = NULL; - t->contents.next->contents.len = 0; - AddDebugInfo (t->contents.next); - if (TraceOn) - t->contents.next = AssignDebug (t->contents.next, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 1367, (char *) "Slice", 5); + start = 0; } - t = t->contents.next; + else + { + start = low-o; + } + end = Max (Min (MaxBuf, (unsigned int) high-o), 0); + while (t->contents.len == MaxBuf) + { + if (t->contents.next == NULL) + { + Storage_ALLOCATE ((void **) &t->contents.next, sizeof (stringRecord)); + t->contents.next->head = NULL; + t->contents.next->contents.len = 0; + AddDebugInfo (t->contents.next); + if (TraceOn) + { + t->contents.next = AssignDebug (t->contents.next, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 1367, (char *) "Slice", 5); + } + } + t = t->contents.next; + } + ConcatContentsAddress (&t->contents, &s->contents.buf.array[start], (unsigned int) end-start); + o += s->contents.len; + s = s->contents.next; } - ConcatContentsAddress (&t->contents, &s->contents.buf.array[start], (unsigned int) end-start); + } + else + { o += s->contents.len; s = s->contents.next; } - else - { - o += s->contents.len; - s = s->contents.next; - } + } if (TraceOn) - d = AssignDebug (d, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 1384, (char *) "Slice", 5); + { + d = AssignDebug (d, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 1384, (char *) "Slice", 5); + } return d; } @@ -1856,19 +2024,25 @@ int DynamicStrings_Index (DynamicStrings_String s, char ch, unsigned int o) unsigned int k; if (PoisonOn) - s = CheckPoisoned (s); + { + s = CheckPoisoned (s); + } k = 0; while (s != NULL) { if ((k+s->contents.len) < o) - k += s->contents.len; + { + k += s->contents.len; + } else { i = o-k; while (i < s->contents.len) { if (s->contents.buf.array[i] == ch) - return k+i; + { + return k+i; + } i += 1; } k += i; @@ -1893,23 +2067,33 @@ int DynamicStrings_RIndex (DynamicStrings_String s, char ch, unsigned int o) int j; if (PoisonOn) - s = CheckPoisoned (s); + { + s = CheckPoisoned (s); + } j = -1; k = 0; while (s != NULL) { if ((k+s->contents.len) < o) - k += s->contents.len; + { + k += s->contents.len; + } else { if (o < k) - i = 0; + { + i = 0; + } else - i = o-k; + { + i = o-k; + } while (i < s->contents.len) { if (s->contents.buf.array[i] == ch) - j = k; + { + j = k; + } k += 1; i += 1; } @@ -1934,11 +2118,18 @@ DynamicStrings_String DynamicStrings_RemoveComment (DynamicStrings_String s, cha i = DynamicStrings_Index (s, comment, 0); if (i == 0) - s = DynamicStrings_InitString ((char *) "", 0); + { + s = DynamicStrings_InitString ((char *) "", 0); + } else if (i > 0) - s = DynamicStrings_RemoveWhitePostfix (DynamicStrings_Slice (DynamicStrings_Mark (s), 0, i)); + { + /* avoid dangling else. */ + s = DynamicStrings_RemoveWhitePostfix (DynamicStrings_Slice (DynamicStrings_Mark (s), 0, i)); + } if (TraceOn) - s = AssignDebug (s, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 1496, (char *) "RemoveComment", 13); + { + s = AssignDebug (s, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 1496, (char *) "RemoveComment", 13); + } return s; } @@ -1954,10 +2145,14 @@ DynamicStrings_String DynamicStrings_RemoveWhitePrefix (DynamicStrings_String s) i = 0; while (IsWhite (DynamicStrings_char (s, (int) i))) - i += 1; + { + i += 1; + } s = DynamicStrings_Slice (s, (int ) (i), 0); if (TraceOn) - s = AssignDebug (s, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 1608, (char *) "RemoveWhitePrefix", 17); + { + s = AssignDebug (s, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 1608, (char *) "RemoveWhitePrefix", 17); + } return s; } @@ -1973,10 +2168,14 @@ DynamicStrings_String DynamicStrings_RemoveWhitePostfix (DynamicStrings_String s i = ((int ) (DynamicStrings_Length (s)))-1; while ((i >= 0) && (IsWhite (DynamicStrings_char (s, i)))) - i -= 1; + { + i -= 1; + } s = DynamicStrings_Slice (s, 0, i+1); if (TraceOn) - s = AssignDebug (s, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 1630, (char *) "RemoveWhitePostfix", 18); + { + s = AssignDebug (s, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/DynamicStrings.mod", 55, 1630, (char *) "RemoveWhitePostfix", 18); + } return s; } @@ -2004,7 +2203,9 @@ DynamicStrings_String DynamicStrings_ToUpper (DynamicStrings_String s) { ch = t->contents.buf.array[i]; if ((ch >= 'a') && (ch <= 'z')) - t->contents.buf.array[i] = (char) ((((unsigned int) (ch))-((unsigned int) ('a')))+((unsigned int) ('A'))); + { + t->contents.buf.array[i] = ((char) (( ((unsigned int) (ch))- ((unsigned int) ('a')))+ ((unsigned int) ('A')))); + } i += 1; } t = t->contents.next; @@ -2037,7 +2238,9 @@ DynamicStrings_String DynamicStrings_ToLower (DynamicStrings_String s) { ch = t->contents.buf.array[i]; if ((ch >= 'A') && (ch <= 'Z')) - t->contents.buf.array[i] = (char) ((((unsigned int) (ch))-((unsigned int) ('A')))+((unsigned int) ('a'))); + { + t->contents.buf.array[i] = ((char) (( ((unsigned int) (ch))- ((unsigned int) ('A')))+ ((unsigned int) ('a')))); + } i += 1; } t = t->contents.next; @@ -2056,15 +2259,17 @@ void DynamicStrings_CopyOut (char *a, unsigned int _a_high, DynamicStrings_Strin unsigned int i; unsigned int l; - l = Min ((_a_high)+1, DynamicStrings_Length (s)); + l = Min (_a_high+1, DynamicStrings_Length (s)); i = 0; while (i < l) { a[i] = DynamicStrings_char (s, (int) i); i += 1; } - if (i <= (_a_high)) - a[i] = ASCII_nul; + if (i <= _a_high) + { + a[i] = ASCII_nul; + } } @@ -2077,20 +2282,30 @@ char DynamicStrings_char (DynamicStrings_String s, int i) unsigned int c; if (PoisonOn) - s = CheckPoisoned (s); + { + s = CheckPoisoned (s); + } if (i < 0) - c = (unsigned int ) (((int ) (DynamicStrings_Length (s)))+i); + { + c = (unsigned int ) (((int ) (DynamicStrings_Length (s)))+i); + } else - c = i; + { + c = i; + } while ((s != NULL) && (c >= s->contents.len)) { c -= s->contents.len; s = s->contents.next; } if ((s == NULL) || (c >= s->contents.len)) - return ASCII_nul; + { + return ASCII_nul; + } else - return s->contents.buf.array[c]; + { + return s->contents.buf.array[c]; + } } @@ -2106,9 +2321,13 @@ void * DynamicStrings_string (DynamicStrings_String s) char * p; if (PoisonOn) - s = CheckPoisoned (s); + { + s = CheckPoisoned (s); + } if (s == NULL) - return NULL; + { + return NULL; + } else { if (! s->head->charStarValid) @@ -2291,7 +2510,9 @@ DynamicStrings_String DynamicStrings_PopAllocationExemption (unsigned int halt, Init (); if (frameHead == NULL) - writeString ((char *) "mismatched number of PopAllocation's compared to PushAllocation's", 65); + { + writeString ((char *) "mismatched number of PopAllocation's compared to PushAllocation's", 65); + } else { if (frameHead->alloc != NULL) @@ -2313,7 +2534,9 @@ DynamicStrings_String DynamicStrings_PopAllocationExemption (unsigned int halt, s = s->debug.next; } if (b && halt) - libc_exit (1); + { + libc_exit (1); + } } frameHead = frameHead->next; } --- a/src/gcc/gm2/mc-boot/GEnvironment.c +++ b/src/gcc/gm2/mc-boot/GEnvironment.c @@ -65,7 +65,9 @@ unsigned int Environment_GetEnvironment (char *Env_, unsigned int _Env_high, cha i += 1; } if (i < High) - a[i] = ASCII_nul; + { + a[i] = ASCII_nul; + } return Addr != NULL; } --- a/src/gcc/gm2/mc-boot/GFIO.c +++ b/src/gcc/gm2/mc-boot/GFIO.c @@ -479,9 +479,13 @@ static void Init (void); static unsigned int Max (unsigned int a, unsigned int b) { if (a > b) - return a; + { + return a; + } else - return b; + { + return b; + } } @@ -492,9 +496,13 @@ static unsigned int Max (unsigned int a, unsigned int b) static unsigned int Min (unsigned int a, unsigned int b) { if (a < b) - return a; + { + return a; + } else - return b; + { + return b; + } } @@ -517,7 +525,9 @@ static FIO_File GetNextFreeDescriptor (void) { fd = Indexing_GetIndice (FileInfo, (unsigned int) f); if (fd == NULL) - return f; + { + return f; + } } f += 1; if (f > h) @@ -591,7 +601,9 @@ static FIO_File InitializeFile (FIO_File f, void * fname, unsigned int flength, fd->buffer->position = 0; fd->buffer->filled = 0; if (fd->buffer->size == 0) - fd->buffer->address = NULL; + { + fd->buffer->address = NULL; + } else { Storage_ALLOCATE (&fd->buffer->address, fd->buffer->size); @@ -602,9 +614,13 @@ static FIO_File InitializeFile (FIO_File f, void * fname, unsigned int flength, } } if (towrite) - fd->buffer->left = fd->buffer->size; + { + fd->buffer->left = fd->buffer->size; + } else - fd->buffer->left = 0; + { + fd->buffer->left = 0; + } fd->buffer->contents = fd->buffer->address; /* provides easy access for reading characters */ fd->state = fstate; /* provides easy access for reading characters */ } @@ -627,14 +643,24 @@ static void ConnectToUnix (FIO_File f, unsigned int towrite, unsigned int newfil if (fd != NULL) { if (towrite) - if (newfile) - fd->unixfd = libc_creat (fd->name.address, CreatePermissions); - else - fd->unixfd = libc_open (fd->name.address, UNIXWRITEONLY, 0); + { + if (newfile) + { + fd->unixfd = libc_creat (fd->name.address, CreatePermissions); + } + else + { + fd->unixfd = libc_open (fd->name.address, UNIXWRITEONLY, 0); + } + } else - fd->unixfd = libc_open (fd->name.address, UNIXREADONLY, 0); + { + fd->unixfd = libc_open (fd->name.address, UNIXREADONLY, 0); + } if (fd->unixfd < 0) - fd->state = connectionfailure; + { + fd->state = connectionfailure; + } } } } @@ -665,38 +691,40 @@ static int ReadFromBuffer (FIO_File f, void * a, unsigned int nBytes) fd = Indexing_GetIndice (FileInfo, (unsigned int) f); /* how many bytes have we read */ /* extract from the buffer first */ if ((fd->buffer != NULL) && fd->buffer->valid) - if (fd->buffer->left > 0) - { - /* avoid gcc warning by using compound statement even if not strictly necessary. */ - if (nBytes == 1) - { - /* too expensive to call memcpy for 1 character */ - p = a; - (*p) = (*fd->buffer->contents).array[fd->buffer->position]; - fd->buffer->left -= 1; /* remove consumed bytes */ - fd->buffer->position += 1; /* move onwards n bytes */ - nBytes = 0; /* reduce the amount for future direct */ - /* read */ - return 1; - } - else - { - n = Min (fd->buffer->left, nBytes); - t = fd->buffer->address; - t += fd->buffer->position; - p = libc_memcpy (a, t, (size_t) n); - fd->buffer->left -= n; /* remove consumed bytes */ - fd->buffer->position += n; /* move onwards n bytes */ - /* move onwards ready for direct reads */ - a += n; - nBytes -= n; /* reduce the amount for future direct */ - /* read */ - total += n; - return total; /* much cleaner to return now, */ - } - /* difficult to record an error if */ - } - /* the read below returns -1 */ + { + if (fd->buffer->left > 0) + { + /* avoid gcc warning by using compound statement even if not strictly necessary. */ + if (nBytes == 1) + { + /* too expensive to call memcpy for 1 character */ + p = a; + (*p) = (*fd->buffer->contents).array[fd->buffer->position]; + fd->buffer->left -= 1; /* remove consumed bytes */ + fd->buffer->position += 1; /* move onwards n bytes */ + nBytes = 0; /* reduce the amount for future direct */ + /* read */ + return 1; + } + else + { + n = Min (fd->buffer->left, nBytes); + t = fd->buffer->address; + t += fd->buffer->position; + p = libc_memcpy (a, t, (size_t) n); + fd->buffer->left -= n; /* remove consumed bytes */ + fd->buffer->position += n; /* move onwards n bytes */ + /* move onwards ready for direct reads */ + a += n; + nBytes -= n; /* reduce the amount for future direct */ + /* read */ + total += n; + return total; /* much cleaner to return now, */ + } + /* difficult to record an error if */ + } + /* the read below returns -1 */ + } if (nBytes > 0) { /* still more to read */ @@ -708,15 +736,21 @@ static int ReadFromBuffer (FIO_File f, void * a, unsigned int nBytes) fd->abspos += result; /* now disable the buffer as we read directly into, a. */ if (fd->buffer != NULL) - fd->buffer->valid = FALSE; + { + fd->buffer->valid = FALSE; + } } else { if (result == 0) - /* eof reached */ - fd->state = endoffile; + { + /* eof reached */ + fd->state = endoffile; + } else - fd->state = failed; + { + fd->state = failed; + } /* indicate buffer is empty */ if (fd->buffer != NULL) { @@ -724,7 +758,9 @@ static int ReadFromBuffer (FIO_File f, void * a, unsigned int nBytes) fd->buffer->left = 0; fd->buffer->position = 0; if (fd->buffer->address != NULL) - (*fd->buffer->contents).array[fd->buffer->position] = ASCII_nul; + { + (*fd->buffer->contents).array[fd->buffer->position] = ASCII_nul; + } } return -1; } @@ -732,7 +768,9 @@ static int ReadFromBuffer (FIO_File f, void * a, unsigned int nBytes) return total; } else - return -1; + { + return -1; + } } @@ -759,72 +797,82 @@ static int BufferedRead (FIO_File f, unsigned int nBytes, void * a) fd = Indexing_GetIndice (FileInfo, (unsigned int) f); total = 0; /* how many bytes have we read */ if (fd != NULL) /* how many bytes have we read */ - /* extract from the buffer first */ - if (fd->buffer != NULL) - { - while (nBytes > 0) - if ((fd->buffer->left > 0) && fd->buffer->valid) - if (nBytes == 1) - { - /* too expensive to call memcpy for 1 character */ - p = a; - (*p) = (*fd->buffer->contents).array[fd->buffer->position]; - fd->buffer->left -= 1; /* remove consumed byte */ - fd->buffer->position += 1; /* move onwards n byte */ - total += 1; /* move onwards n byte */ - return total; - } - else - { - n = Min (fd->buffer->left, nBytes); - t = fd->buffer->address; - t += fd->buffer->position; - p = libc_memcpy (a, t, (size_t) n); - fd->buffer->left -= n; /* remove consumed bytes */ - fd->buffer->position += n; /* move onwards n bytes */ - /* move onwards ready for direct reads */ - a += n; - nBytes -= n; /* reduce the amount for future direct */ - /* read */ - total += n; - } - else + { + /* extract from the buffer first */ + if (fd->buffer != NULL) + { + while (nBytes > 0) { - /* refill buffer */ - n = libc_read (fd->unixfd, fd->buffer->address, (size_t) fd->buffer->size); - if (n >= 0) + if ((fd->buffer->left > 0) && fd->buffer->valid) { - /* avoid dangling else. */ - fd->buffer->valid = TRUE; - fd->buffer->position = 0; - fd->buffer->left = n; - fd->buffer->filled = n; - fd->buffer->bufstart = fd->abspos; - fd->abspos += n; - if (n == 0) + if (nBytes == 1) { - /* eof reached */ - fd->state = endoffile; - return -1; + /* too expensive to call memcpy for 1 character */ + p = a; + (*p) = (*fd->buffer->contents).array[fd->buffer->position]; + fd->buffer->left -= 1; /* remove consumed byte */ + fd->buffer->position += 1; /* move onwards n byte */ + total += 1; /* move onwards n byte */ + return total; + } + else + { + n = Min (fd->buffer->left, nBytes); + t = fd->buffer->address; + t += fd->buffer->position; + p = libc_memcpy (a, t, (size_t) n); + fd->buffer->left -= n; /* remove consumed bytes */ + fd->buffer->position += n; /* move onwards n bytes */ + /* move onwards ready for direct reads */ + a += n; + nBytes -= n; /* reduce the amount for future direct */ + /* read */ + total += n; } } else { - fd->buffer->valid = FALSE; - fd->buffer->position = 0; - fd->buffer->left = 0; - fd->buffer->filled = 0; - fd->state = failed; - return total; + /* refill buffer */ + n = libc_read (fd->unixfd, fd->buffer->address, (size_t) fd->buffer->size); + if (n >= 0) + { + /* avoid dangling else. */ + fd->buffer->valid = TRUE; + fd->buffer->position = 0; + fd->buffer->left = n; + fd->buffer->filled = n; + fd->buffer->bufstart = fd->abspos; + fd->abspos += n; + if (n == 0) + { + /* eof reached */ + fd->state = endoffile; + return -1; + } + } + else + { + fd->buffer->valid = FALSE; + fd->buffer->position = 0; + fd->buffer->left = 0; + fd->buffer->filled = 0; + fd->state = failed; + return total; + } } } - return total; - } - else - return -1; + return total; + } + else + { + return -1; + } + } } else - return -1; + { + return -1; + } } @@ -852,6 +900,7 @@ static void HandleEscape (char *dest, unsigned int _dest_high, char *src_, unsig } else if (src[(*i)+1] == 't') { + /* avoid dangling else. */ /* requires a tab (yuck) tempted to fake this but I better not.. */ dest[(*j)] = ASCII_tab; (*j) += 1; @@ -859,6 +908,7 @@ static void HandleEscape (char *dest, unsigned int _dest_high, char *src_, unsig } else { + /* avoid dangling else. */ /* copy escaped character */ (*i) += 1; dest[(*j)] = src[(*i)]; @@ -881,11 +931,17 @@ static void Cast (unsigned char *a, unsigned int _a_high, unsigned char *b_, uns /* make a local copy of each unbounded array. */ memcpy (b, b_, _b_high+1); - if ((_a_high) == (_b_high)) - for (i=0; i<=_a_high; i++) - a[i] = b[i]; + if (_a_high == _b_high) + { + for (i=0; i<=_a_high; i++) + { + a[i] = b[i]; + } + } else - FormatError ((char *) "cast failed", 11); + { + FormatError ((char *) "cast failed", 11); + } } @@ -918,14 +974,18 @@ static void StringFormat1 (char *dest, unsigned int _dest_high, char *src_, unsi i = 0; j = 0; while ((((i < HighSrc) && (src[i] != ASCII_nul)) && (j < HighDest)) && (src[i] != '%')) - if (src[i] == '\\') - HandleEscape ((char *) dest, _dest_high, (char *) src, _src_high, &i, &j, HighSrc, HighDest); - else - { - dest[j] = src[i]; - i += 1; - j += 1; - } + { + if (src[i] == '\\') + { + HandleEscape ((char *) dest, _dest_high, (char *) src, _src_high, &i, &j, HighSrc, HighDest); + } + else + { + dest[j] = src[i]; + i += 1; + j += 1; + } + } if ((((i+1) < HighSrc) && (src[i] == '%')) && (j < HighDest)) { /* avoid gcc warning by using compound statement even if not strictly necessary. */ @@ -939,12 +999,15 @@ static void StringFormat1 (char *dest, unsigned int _dest_high, char *src_, unsi p += 1; } if (j < HighDest) - dest[j] = ASCII_nul; + { + dest[j] = ASCII_nul; + } j = StrLib_StrLen ((char *) dest, _dest_high); i += 2; } else if (src[i+1] == 'd') { + /* avoid dangling else. */ dest[j] = ASCII_nul; Cast ((unsigned char *) &c, (sizeof (c)-1), (unsigned char *) w, _w_high); NumberIO_CardToStr (c, 0, (char *) &str.array[0], MaxErrorString); @@ -954,6 +1017,7 @@ static void StringFormat1 (char *dest, unsigned int _dest_high, char *src_, unsi } else { + /* avoid dangling else. */ dest[j] = src[i]; i += 1; j += 1; @@ -961,16 +1025,22 @@ static void StringFormat1 (char *dest, unsigned int _dest_high, char *src_, unsi } /* and finish off copying src into dest */ while (((i < HighSrc) && (src[i] != ASCII_nul)) && (j < HighDest)) - if (src[i] == '\\') - HandleEscape ((char *) dest, _dest_high, (char *) src, _src_high, &i, &j, HighSrc, HighDest); - else - { - dest[j] = src[i]; - i += 1; - j += 1; - } + { + if (src[i] == '\\') + { + HandleEscape ((char *) dest, _dest_high, (char *) src, _src_high, &i, &j, HighSrc, HighDest); + } + else + { + dest[j] = src[i]; + i += 1; + j += 1; + } + } if (j < HighDest) - dest[j] = ASCII_nul; + { + dest[j] = ASCII_nul; + } } @@ -1051,36 +1121,45 @@ static void CheckAccess (FIO_File f, FileUsage use, unsigned int towrite) if (fd == NULL) { if (f != FIO_StdErr) - FormatError ((char *) "this file has probably been closed and not reopened successfully or alternatively never opened\\n", 96); + { + FormatError ((char *) "this file has probably been closed and not reopened successfully or alternatively never opened\\n", 96); + } M2RTS_HALT (-1); } else - if ((use == openedforwrite) && (fd->usage == openedforread)) - { - FormatError1 ((char *) "this file (%s) has been opened for reading but is now being written\\n", 69, (unsigned char *) &fd->name.address, (sizeof (fd->name.address)-1)); - M2RTS_HALT (-1); - } - else if ((use == openedforread) && (fd->usage == openedforwrite)) - { - FormatError1 ((char *) "this file (%s) has been opened for writing but is now being read\\n", 66, (unsigned char *) &fd->name.address, (sizeof (fd->name.address)-1)); - M2RTS_HALT (-1); - } - else if (fd->state == connectionfailure) - { - FormatError1 ((char *) "this file (%s) was not successfully opened\\n", 44, (unsigned char *) &fd->name.address, (sizeof (fd->name.address)-1)); - M2RTS_HALT (-1); - } - else if (towrite != fd->output) - if (fd->output) + { + if ((use == openedforwrite) && (fd->usage == openedforread)) { - FormatError1 ((char *) "this file (%s) was opened for writing but is now being read\\n", 61, (unsigned char *) &fd->name.address, (sizeof (fd->name.address)-1)); + FormatError1 ((char *) "this file (%s) has been opened for reading but is now being written\\n", 69, (unsigned char *) &fd->name.address, (sizeof (fd->name.address)-1)); M2RTS_HALT (-1); } - else + else if ((use == openedforread) && (fd->usage == openedforwrite)) { - FormatError1 ((char *) "this file (%s) was opened for reading but is now being written\\n", 64, (unsigned char *) &fd->name.address, (sizeof (fd->name.address)-1)); + /* avoid dangling else. */ + FormatError1 ((char *) "this file (%s) has been opened for writing but is now being read\\n", 66, (unsigned char *) &fd->name.address, (sizeof (fd->name.address)-1)); M2RTS_HALT (-1); } + else if (fd->state == connectionfailure) + { + /* avoid dangling else. */ + FormatError1 ((char *) "this file (%s) was not successfully opened\\n", 44, (unsigned char *) &fd->name.address, (sizeof (fd->name.address)-1)); + M2RTS_HALT (-1); + } + else if (towrite != fd->output) + { + /* avoid dangling else. */ + if (fd->output) + { + FormatError1 ((char *) "this file (%s) was opened for writing but is now being read\\n", 61, (unsigned char *) &fd->name.address, (sizeof (fd->name.address)-1)); + M2RTS_HALT (-1); + } + else + { + FormatError1 ((char *) "this file (%s) was opened for reading but is now being written\\n", 64, (unsigned char *) &fd->name.address, (sizeof (fd->name.address)-1)); + M2RTS_HALT (-1); + } + } + } } else { @@ -1103,9 +1182,13 @@ static void SetEndOfLine (FIO_File f, char ch) { fd = Indexing_GetIndice (FileInfo, (unsigned int) f); if (ch == ASCII_nl) - fd->state = endofline; + { + fd->state = endofline; + } else - fd->state = successful; + { + fd->state = successful; + } } } @@ -1137,36 +1220,42 @@ static int BufferedWrite (FIO_File f, unsigned int nBytes, void * a) { /* place into the buffer first */ while (nBytes > 0) - if (fd->buffer->left > 0) - if (nBytes == 1) + { + if (fd->buffer->left > 0) { - /* too expensive to call memcpy for 1 character */ - p = a; - (*fd->buffer->contents).array[fd->buffer->position] = (*p); - fd->buffer->left -= 1; /* reduce space */ - fd->buffer->position += 1; /* move onwards n byte */ - total += 1; /* move onwards n byte */ - return total; + if (nBytes == 1) + { + /* too expensive to call memcpy for 1 character */ + p = a; + (*fd->buffer->contents).array[fd->buffer->position] = (*p); + fd->buffer->left -= 1; /* reduce space */ + fd->buffer->position += 1; /* move onwards n byte */ + total += 1; /* move onwards n byte */ + return total; + } + else + { + n = Min (fd->buffer->left, nBytes); + t = fd->buffer->address; + t += fd->buffer->position; + p = libc_memcpy (a, t, (size_t) (unsigned int ) (n)); + fd->buffer->left -= n; /* remove consumed bytes */ + fd->buffer->position += n; /* move onwards n bytes */ + /* move ready for further writes */ + a += n; + nBytes -= n; /* reduce the amount for future writes */ + total += n; /* reduce the amount for future writes */ + } } else { - n = Min (fd->buffer->left, nBytes); - t = fd->buffer->address; - t += fd->buffer->position; - p = libc_memcpy (a, t, (size_t) (unsigned int ) (n)); - fd->buffer->left -= n; /* remove consumed bytes */ - fd->buffer->position += n; /* move onwards n bytes */ - /* move ready for further writes */ - a += n; - nBytes -= n; /* reduce the amount for future writes */ - total += n; /* reduce the amount for future writes */ + FIO_FlushBuffer (f); + if ((fd->state != successful) && (fd->state != endofline)) + { + nBytes = 0; + } } - else - { - FIO_FlushBuffer (f); - if ((fd->state != successful) && (fd->state != endofline)) - nBytes = 0; - } + } return total; } } @@ -1195,15 +1284,23 @@ static void PreInitialize (FIO_File f, char *fname_, unsigned int _fname_high, F { fe = Indexing_GetIndice (FileInfo, (unsigned int) FIO_StdErr); if (fe == NULL) - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } else - fd->unixfd = fe->unixfd; /* the error channel */ + { + fd->unixfd = fe->unixfd; /* the error channel */ + } } else - fd->unixfd = osfd; + { + fd->unixfd = osfd; + } } else - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } } @@ -1223,7 +1320,9 @@ static void Init (void) FIO_StdErr = 3; PreInitialize (FIO_StdErr, (char *) "", 8, (FileStatus) successful, (FileUsage) openedforwrite, TRUE, 2, MaxBufferLength); if (! (M2RTS_InstallTerminationProcedure ((PROC ) {(PROC_t) FIO_FlushOutErr}))) - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } } @@ -1236,7 +1335,9 @@ unsigned int FIO_IsNoError (FIO_File f) FileDescriptor fd; if (f == Error) - return FALSE; + { + return FALSE; + } else { fd = Indexing_GetIndice (FileInfo, (unsigned int) f); @@ -1252,9 +1353,13 @@ unsigned int FIO_IsNoError (FIO_File f) unsigned int FIO_IsActive (FIO_File f) { if (f == Error) - return FALSE; + { + return FALSE; + } else - return (Indexing_GetIndice (FileInfo, (unsigned int) f)) != NULL; + { + return (Indexing_GetIndice (FileInfo, (unsigned int) f)) != NULL; + } } unsigned int FIO_Exists (char *fname_, unsigned int _fname_high) @@ -1321,17 +1426,23 @@ void FIO_Close (FIO_File f) { FIO_FlushBuffer (f); if (fd->unixfd >= 0) - if ((libc_close (fd->unixfd)) != 0) - { - FormatError1 ((char *) "failed to close file (%s)\\n", 27, (unsigned char *) &fd->name.address, (sizeof (fd->name.address)-1)); - fd->state = failed; /* --fixme-- too late to notify user (unless we return a BOOLEAN) */ - } + { + if ((libc_close (fd->unixfd)) != 0) + { + FormatError1 ((char *) "failed to close file (%s)\\n", 27, (unsigned char *) &fd->name.address, (sizeof (fd->name.address)-1)); + fd->state = failed; /* --fixme-- too late to notify user (unless we return a BOOLEAN) */ + } + } if (fd->name.address != NULL) - Storage_DEALLOCATE (&fd->name.address, fd->name.size); + { + Storage_DEALLOCATE (&fd->name.address, fd->name.size); + } if (fd->buffer != NULL) { if (fd->buffer->address != NULL) - Storage_DEALLOCATE (&fd->buffer->address, fd->buffer->size); + { + Storage_DEALLOCATE (&fd->buffer->address, fd->buffer->size); + } Storage_DEALLOCATE ((void **) &fd->buffer, sizeof (buf)); fd->buffer = NULL; } @@ -1377,7 +1488,9 @@ FIO_File FIO_openToRead (void * fname, unsigned int flength) f = GetNextFreeDescriptor (); if (f == Error) - SetState (f, (FileStatus) toomanyfilesopen); + { + SetState (f, (FileStatus) toomanyfilesopen); + } else { f = InitializeFile (f, fname, flength, (FileStatus) successful, (FileUsage) openedforread, FALSE, MaxBufferLength); @@ -1400,7 +1513,9 @@ FIO_File FIO_openToWrite (void * fname, unsigned int flength) f = GetNextFreeDescriptor (); if (f == Error) - SetState (f, (FileStatus) toomanyfilesopen); + { + SetState (f, (FileStatus) toomanyfilesopen); + } else { f = InitializeFile (f, fname, flength, (FileStatus) successful, (FileUsage) openedforwrite, TRUE, MaxBufferLength); @@ -1425,7 +1540,9 @@ FIO_File FIO_openForRandom (void * fname, unsigned int flength, unsigned int tow f = GetNextFreeDescriptor (); if (f == Error) - SetState (f, (FileStatus) toomanyfilesopen); + { + SetState (f, (FileStatus) toomanyfilesopen); + } else { f = InitializeFile (f, fname, flength, (FileStatus) successful, (FileUsage) openedforrandom, towrite, MaxBufferLength); @@ -1447,17 +1564,23 @@ void FIO_FlushBuffer (FIO_File f) { fd = Indexing_GetIndice (FileInfo, (unsigned int) f); if (fd != NULL) - if (fd->output && (fd->buffer != NULL)) - if ((fd->buffer->position == 0) || ((libc_write (fd->unixfd, fd->buffer->address, (size_t) fd->buffer->position)) == ((int ) (fd->buffer->position)))) + { + if (fd->output && (fd->buffer != NULL)) { - fd->abspos += fd->buffer->position; - fd->buffer->bufstart = fd->abspos; - fd->buffer->position = 0; - fd->buffer->filled = 0; - fd->buffer->left = fd->buffer->size; + if ((fd->buffer->position == 0) || ((libc_write (fd->unixfd, fd->buffer->address, (size_t) fd->buffer->position)) == ((int ) (fd->buffer->position)))) + { + fd->abspos += fd->buffer->position; + fd->buffer->bufstart = fd->abspos; + fd->buffer->position = 0; + fd->buffer->filled = 0; + fd->buffer->left = fd->buffer->size; + } + else + { + fd->state = failed; + } } - else - fd->state = failed; + } } } @@ -1478,18 +1601,22 @@ unsigned int FIO_ReadNBytes (FIO_File f, unsigned int nBytes, void * a) { CheckAccess (f, (FileUsage) openedforread, FALSE); n = ReadFromBuffer (f, a, nBytes); - if (n < 0) - return 0; + if (n <= 0) + { + return 0; + } else { p = a; - p += n; + p += n-1; SetEndOfLine (f, (*p)); return n; } } else - return 0; + { + return 0; + } } @@ -1502,8 +1629,10 @@ unsigned int FIO_ReadNBytes (FIO_File f, unsigned int nBytes, void * a) void FIO_ReadAny (FIO_File f, unsigned char *a, unsigned int _a_high) { CheckAccess (f, (FileUsage) openedforread, FALSE); - if ((BufferedRead (f, _a_high, a)) == (_a_high)) - SetEndOfLine (f, (char) a[_a_high]); + if ((BufferedRead (f, _a_high, a)) == _a_high) + { + SetEndOfLine (f, (char) a[_a_high]); + } } @@ -1537,7 +1666,9 @@ unsigned int FIO_WriteNBytes (FIO_File f, unsigned int nBytes, void * a) { fd->abspos += (unsigned int ) (total); if (fd->buffer != NULL) - fd->buffer->bufstart = fd->abspos; + { + fd->buffer->bufstart = fd->abspos; + } return (unsigned int ) (total); } } @@ -1555,7 +1686,7 @@ unsigned int FIO_WriteNBytes (FIO_File f, unsigned int nBytes, void * a) void FIO_WriteAny (FIO_File f, unsigned char *a, unsigned int _a_high) { CheckAccess (f, (FileUsage) openedforwrite, TRUE); - if ((BufferedWrite (f, _a_high, a)) == (_a_high)) + if ((BufferedWrite (f, _a_high, a)) == _a_high) {} /* empty. */ } @@ -1567,7 +1698,7 @@ void FIO_WriteAny (FIO_File f, unsigned char *a, unsigned int _a_high) void FIO_WriteChar (FIO_File f, char ch) { CheckAccess (f, (FileUsage) openedforwrite, TRUE); - if ((BufferedWrite (f, (unsigned int) sizeof (ch), &ch)) == (sizeof (ch))) + if ((BufferedWrite (f, sizeof (ch), &ch)) == sizeof (ch)) {} /* empty. */ } @@ -1585,7 +1716,9 @@ unsigned int FIO_EOF (FIO_File f) { fd = Indexing_GetIndice (FileInfo, (unsigned int) f); if (fd != NULL) - return fd->state == endoffile; + { + return fd->state == endoffile; + } } return TRUE; } @@ -1610,13 +1743,17 @@ unsigned int FIO_EOLN (FIO_File f) { fd = Indexing_GetIndice (FileInfo, (unsigned int) f); if (fd != NULL) - if ((fd->state == successful) || (fd->state == endofline)) - { - ch = FIO_ReadChar (f); - if ((fd->state == successful) || (fd->state == endofline)) - FIO_UnReadChar (f, ch); - return ch == ASCII_nl; - } + { + if ((fd->state == successful) || (fd->state == endofline)) + { + ch = FIO_ReadChar (f); + if ((fd->state == successful) || (fd->state == endofline)) + { + FIO_UnReadChar (f, ch); + } + return ch == ASCII_nl; + } + } } return FALSE; } @@ -1632,7 +1769,9 @@ unsigned int FIO_WasEOLN (FIO_File f) CheckAccess (f, (FileUsage) openedforread, FALSE); if (f == Error) - return FALSE; + { + return FALSE; + } else { fd = Indexing_GetIndice (FileInfo, (unsigned int) f); @@ -1652,13 +1791,15 @@ char FIO_ReadChar (FIO_File f) char ch; CheckAccess (f, (FileUsage) openedforread, FALSE); - if ((BufferedRead (f, (unsigned int) sizeof (ch), &ch)) == (sizeof (ch))) + if ((BufferedRead (f, sizeof (ch), &ch)) == sizeof (ch)) { SetEndOfLine (f, ch); return ch; } else - return ASCII_nul; + { + return ASCII_nul; + } } @@ -1704,22 +1845,28 @@ void FIO_UnReadChar (FIO_File f, char ch) (*fd->buffer->contents).array[fd->buffer->position] = ch; } else - /* if possible make room and store ch */ - if (fd->buffer->filled == fd->buffer->size) - FormatError1 ((char *) "performing too many UnReadChar calls on file (%d)\\n", 51, (unsigned char *) &f, (sizeof (f)-1)); - else - { - n = fd->buffer->filled-fd->buffer->position; - b = &(*fd->buffer->contents).array[fd->buffer->position]; - a = &(*fd->buffer->contents).array[fd->buffer->position+1]; - a = libc_memcpy (a, b, (size_t) n); - fd->buffer->filled += 1; - (*fd->buffer->contents).array[fd->buffer->position] = ch; - } + { + /* if possible make room and store ch */ + if (fd->buffer->filled == fd->buffer->size) + { + FormatError1 ((char *) "performing too many UnReadChar calls on file (%d)\\n", 51, (unsigned char *) &f, (sizeof (f)-1)); + } + else + { + n = fd->buffer->filled-fd->buffer->position; + b = &(*fd->buffer->contents).array[fd->buffer->position]; + a = &(*fd->buffer->contents).array[fd->buffer->position+1]; + a = libc_memcpy (a, b, (size_t) n); + fd->buffer->filled += 1; + (*fd->buffer->contents).array[fd->buffer->position] = ch; + } + } } } else - FormatError1 ((char *) "UnReadChar can only be called if the previous read was successful or end of file, error on file (%d)\\n", 102, (unsigned char *) &f, (sizeof (f)-1)); + { + FormatError1 ((char *) "UnReadChar can only be called if the previous read was successful or end of file, error on file (%d)\\n", 102, (unsigned char *) &f, (sizeof (f)-1)); + } } } @@ -1826,7 +1973,9 @@ int FIO_GetUnixFileDescriptor (FIO_File f) { fd = Indexing_GetIndice (FileInfo, (unsigned int) f); if (fd != NULL) - return fd->unixfd; + { + return fd->unixfd; + } } FormatError1 ((char *) "file %d has not been opened or is out of range\\n", 48, (unsigned char *) &f, (sizeof (f)-1)); return -1; @@ -1846,34 +1995,42 @@ void FIO_SetPositionFromBeginning (FIO_File f, long int pos) { fd = Indexing_GetIndice (FileInfo, (unsigned int) f); if (fd != NULL) - /* always force the lseek, until we are confident that abspos is always correct, + { + /* always force the lseek, until we are confident that abspos is always correct, basically it needs some hard testing before we should remove the OR TRUE. */ - if ((fd->abspos != pos) || TRUE) - { - FIO_FlushBuffer (f); - if (fd->buffer != NULL) - { - if (fd->output) - fd->buffer->left = fd->buffer->size; - else - fd->buffer->left = 0; - fd->buffer->position = 0; - fd->buffer->filled = 0; - } - offset = libc_lseek (fd->unixfd, pos, SEEK_SET); - if ((offset >= 0) && (pos == offset)) - fd->abspos = pos; - else - { - fd->state = failed; - fd->abspos = 0; - } - if (fd->buffer != NULL) - { - fd->buffer->valid = FALSE; - fd->buffer->bufstart = fd->abspos; - } - } + if ((fd->abspos != pos) || TRUE) + { + FIO_FlushBuffer (f); + if (fd->buffer != NULL) + { + if (fd->output) + { + fd->buffer->left = fd->buffer->size; + } + else + { + fd->buffer->left = 0; + } + fd->buffer->position = 0; + fd->buffer->filled = 0; + } + offset = libc_lseek (fd->unixfd, pos, SEEK_SET); + if ((offset >= 0) && (pos == offset)) + { + fd->abspos = pos; + } + else + { + fd->state = failed; + fd->abspos = 0; + } + if (fd->buffer != NULL) + { + fd->buffer->valid = FALSE; + fd->buffer->bufstart = fd->abspos; + } + } + } } } @@ -1896,15 +2053,21 @@ void FIO_SetPositionFromEnd (FIO_File f, long int pos) if (fd->buffer != NULL) { if (fd->output) - fd->buffer->left = fd->buffer->size; + { + fd->buffer->left = fd->buffer->size; + } else - fd->buffer->left = 0; + { + fd->buffer->left = 0; + } fd->buffer->position = 0; fd->buffer->filled = 0; } offset = libc_lseek (fd->unixfd, pos, SEEK_END); if (offset >= 0) - fd->abspos = offset; + { + fd->abspos = offset; + } else { fd->state = failed; @@ -1933,10 +2096,16 @@ long int FIO_FindPosition (FIO_File f) { fd = Indexing_GetIndice (FileInfo, (unsigned int) f); if (fd != NULL) - if ((fd->buffer == NULL) || ! fd->buffer->valid) - return fd->abspos; - else - return fd->buffer->bufstart+((long int ) (fd->buffer->position)); + { + if ((fd->buffer == NULL) || ! fd->buffer->valid) + { + return fd->abspos; + } + else + { + return fd->buffer->bufstart+((long int ) (fd->buffer->position)); + } + } } return 0; } @@ -1961,19 +2130,23 @@ void FIO_GetFileName (FIO_File f, char *a, unsigned int _a_high) M2RTS_HALT (-1); } else - if (fd->name.address == NULL) - StrLib_StrCopy ((char *) "", 0, (char *) a, _a_high); - else - { - p = fd->name.address; - i = 0; - while (((*p) != ASCII_nul) && (i <= (_a_high))) - { - a[i] = (*p); - p += 1; - i += 1; - } - } + { + if (fd->name.address == NULL) + { + StrLib_StrCopy ((char *) "", 0, (char *) a, _a_high); + } + else + { + p = fd->name.address; + i = 0; + while (((*p) != ASCII_nul) && (i <= _a_high)) + { + a[i] = (*p); + p += 1; + i += 1; + } + } + } } } @@ -1995,7 +2168,9 @@ void * FIO_getFileName (FIO_File f) M2RTS_HALT (-1); } else - return fd->name.address; + { + return fd->name.address; + } } } @@ -2017,7 +2192,9 @@ unsigned int FIO_getFileNameLength (FIO_File f) M2RTS_HALT (-1); } else - return fd->name.size; + { + return fd->name.size; + } } } @@ -2032,9 +2209,13 @@ unsigned int FIO_getFileNameLength (FIO_File f) void FIO_FlushOutErr (void) { if (FIO_IsNoError (FIO_StdOut)) - FIO_FlushBuffer (FIO_StdOut); + { + FIO_FlushBuffer (FIO_StdOut); + } if (FIO_IsNoError (FIO_StdErr)) - FIO_FlushBuffer (FIO_StdErr); + { + FIO_FlushBuffer (FIO_StdErr); + } } void _M2_FIO_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[]) --- a/src/gcc/gm2/mc-boot/GFormatStrings.c +++ b/src/gcc/gm2/mc-boot/GFormatStrings.c @@ -28,6 +28,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * # define FALSE (1==0) # endif +#include #include #include #define _FormatStrings_H @@ -45,32 +46,32 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * escape sequences translated. */ -DynamicStrings_String FormatStrings_Sprintf0 (DynamicStrings_String s); +DynamicStrings_String FormatStrings_Sprintf0 (DynamicStrings_String fmt); /* Sprintf1 - returns a String containing, s, together with encapsulated entity, w. It only formats the first %s or %d with n. */ -DynamicStrings_String FormatStrings_Sprintf1 (DynamicStrings_String s, unsigned char *w_, unsigned int _w_high); +DynamicStrings_String FormatStrings_Sprintf1 (DynamicStrings_String fmt, unsigned char *w_, unsigned int _w_high); /* Sprintf2 - returns a string, s, which has been formatted. */ -DynamicStrings_String FormatStrings_Sprintf2 (DynamicStrings_String s, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high); +DynamicStrings_String FormatStrings_Sprintf2 (DynamicStrings_String fmt, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high); /* Sprintf3 - returns a string, s, which has been formatted. */ -DynamicStrings_String FormatStrings_Sprintf3 (DynamicStrings_String s, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high, unsigned char *w3_, unsigned int _w3_high); +DynamicStrings_String FormatStrings_Sprintf3 (DynamicStrings_String fmt, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high, unsigned char *w3_, unsigned int _w3_high); /* Sprintf4 - returns a string, s, which has been formatted. */ -DynamicStrings_String FormatStrings_Sprintf4 (DynamicStrings_String s, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high, unsigned char *w3_, unsigned int _w3_high, unsigned char *w4_, unsigned int _w4_high); +DynamicStrings_String FormatStrings_Sprintf4 (DynamicStrings_String fmt, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high, unsigned char *w3_, unsigned int _w3_high, unsigned char *w4_, unsigned int _w4_high); /* doDSdbEnter - @@ -121,7 +122,29 @@ static DynamicStrings_String HandleEscape (DynamicStrings_String s); A new string is returned. */ -static DynamicStrings_String FormatString (DynamicStrings_String s, unsigned char *w_, unsigned int _w_high); +static DynamicStrings_String FormatString (DynamicStrings_String fmt, int *startpos, DynamicStrings_String in, unsigned char *w_, unsigned int _w_high); + +/* + FormatString - returns a String containing, s, together with encapsulated + entity, w. It only formats the first %s or %d or %u with n. + A new string is returned. +*/ + +static DynamicStrings_String PerformFormatString (DynamicStrings_String fmt, int *startpos, DynamicStrings_String in, unsigned char *w_, unsigned int _w_high); + +/* + Copy - copies, fmt[start:end] -> in and returns in. Providing that start >= 0. +*/ + +static DynamicStrings_String Copy (DynamicStrings_String fmt, DynamicStrings_String in, int start, int end); + +/* + HandlePercent - pre-condition: s, is a string. + Post-condition: a new string is returned which is a copy of, + s, except %% is transformed into %. +*/ + +static DynamicStrings_String HandlePercent (DynamicStrings_String fmt, DynamicStrings_String s, int startpos); /* @@ -184,11 +207,17 @@ static void Cast (unsigned char *a, unsigned int _a_high, unsigned char *b_, uns /* make a local copy of each unbounded array. */ memcpy (b, b_, _b_high+1); - if ((_a_high) == (_b_high)) - for (i=0; i<=_a_high; i++) - a[i] = b[i]; + if (_a_high == _b_high) + { + for (i=0; i<=_a_high; i++) + { + a[i] = b[i]; + } + } else - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } } @@ -211,18 +240,28 @@ static DynamicStrings_String HandleEscape (DynamicStrings_String s) while (i >= 0) { if (i > 0) - /* initially i might be zero which means the end of the string, which is not what we want */ - d = DynamicStrings_ConCat (d, DynamicStrings_Slice (s, j, i)); + { + /* initially i might be zero which means the end of the string, which is not what we want */ + d = DynamicStrings_ConCat (d, DynamicStrings_Slice (s, j, i)); + } ch = DynamicStrings_char (s, i+1); if (ch == 'n') - /* requires a newline */ - d = DynamicStrings_ConCat (d, DynamicStrings_Mark (DynamicStrings_InitStringChar (ASCII_nl))); + { + /* requires a newline */ + d = DynamicStrings_ConCat (d, DynamicStrings_Mark (DynamicStrings_InitStringChar (ASCII_nl))); + } else if (ch == 't') - /* requires a tab (yuck) */ - d = DynamicStrings_ConCat (d, DynamicStrings_Mark (DynamicStrings_InitStringChar (ASCII_tab))); + { + /* avoid dangling else. */ + /* requires a tab (yuck) */ + d = DynamicStrings_ConCat (d, DynamicStrings_Mark (DynamicStrings_InitStringChar (ASCII_tab))); + } else - /* copy escaped character */ - d = DynamicStrings_ConCat (d, DynamicStrings_Mark (DynamicStrings_InitStringChar (ch))); + { + /* avoid dangling else. */ + /* copy escaped character */ + d = DynamicStrings_ConCat (d, DynamicStrings_Mark (DynamicStrings_InitStringChar (ch))); + } i += 2; j = i; i = DynamicStrings_Index (s, '\\', (unsigned int ) (i)); @@ -240,15 +279,43 @@ static DynamicStrings_String HandleEscape (DynamicStrings_String s) A new string is returned. */ -static DynamicStrings_String FormatString (DynamicStrings_String s, unsigned char *w_, unsigned int _w_high) +static DynamicStrings_String FormatString (DynamicStrings_String fmt, int *startpos, DynamicStrings_String in, unsigned char *w_, unsigned int _w_high) +{ + DynamicStrings_String s; + unsigned char w[_w_high+1]; + + /* make a local copy of each unbounded array. */ + memcpy (w, w_, _w_high+1); + + DSdbEnter (); + if ((*startpos) >= 0) + { + s = PerformFormatString (fmt, startpos, in, (unsigned char *) w, _w_high); + } + else + { + s = DynamicStrings_Dup (in); + } + DSdbExit (s); + return s; +} + + +/* + FormatString - returns a String containing, s, together with encapsulated + entity, w. It only formats the first %s or %d or %u with n. + A new string is returned. +*/ + +static DynamicStrings_String PerformFormatString (DynamicStrings_String fmt, int *startpos, DynamicStrings_String in, unsigned char *w_, unsigned int _w_high) { unsigned int left; unsigned int u; int c; int width; - int i; - int j; - int k; + int nextperc; + int afterperc; + int endpos; char leader; char ch; char ch2; @@ -258,81 +325,199 @@ static DynamicStrings_String FormatString (DynamicStrings_String s, unsigned cha /* make a local copy of each unbounded array. */ memcpy (w, w_, _w_high+1); - DSdbEnter (); - i = 0; - j = DynamicStrings_Index (s, '%', 0); - if (j == 0) - k = -(DynamicStrings_Length (s)); - else - k = j; - if (j >= 0) + while ((*startpos) >= 0) { - if ((DynamicStrings_char (s, j+1)) == '-') + nextperc = DynamicStrings_Index (fmt, '%', (unsigned int) (*startpos)); + afterperc = nextperc; + if (nextperc >= 0) { - left = TRUE; - j += 1; - } - else - left = FALSE; - ch = DynamicStrings_char (s, j+1); - if (ch == '0') - leader = '0'; - else - leader = ' '; - width = 0; - while (IsDigit (ch)) - { - width = (width*10)+((int ) (((unsigned int) (ch))-((unsigned int) ('0')))); - j += 1; - ch = DynamicStrings_char (s, j+1); - } - if ((ch == 'c') || (ch == 's')) - { - if (ch == 'c') + afterperc += 1; + if ((DynamicStrings_char (fmt, afterperc)) == '-') + { + left = TRUE; + afterperc += 1; + } + else + { + left = FALSE; + } + ch = DynamicStrings_char (fmt, afterperc); + if (ch == '0') { - ch2 = w[0]; - p = DynamicStrings_ConCatChar (DynamicStrings_InitString ((char *) "", 0), ch2); + leader = '0'; } else { - Cast ((unsigned char *) &p, (sizeof (p)-1), (unsigned char *) w, _w_high); - p = DynamicStrings_Dup (p); + leader = ' '; } - if ((width > 0) && (((int ) (DynamicStrings_Length (p))) < width)) + width = 0; + while (IsDigit (ch)) { - /* avoid gcc warning by using compound statement even if not strictly necessary. */ - if (left) - /* place trailing spaces after, p */ - p = DynamicStrings_ConCat (p, DynamicStrings_Mark (DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitString ((char *) " ", 1)), (unsigned int) width-((int ) (DynamicStrings_Length (p)))))); + width = (width*10)+((int ) ( ((unsigned int) (ch))- ((unsigned int) ('0')))); + afterperc += 1; + ch = DynamicStrings_char (fmt, afterperc); + } + if ((ch == 'c') || (ch == 's')) + { + afterperc += 1; + if (ch == 'c') + { + ch2 = w[0]; + p = DynamicStrings_ConCatChar (DynamicStrings_InitString ((char *) "", 0), ch2); + } else - /* padd string, p, with leading spaces */ - p = DynamicStrings_ConCat (DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitString ((char *) " ", 1)), (unsigned int) width-((int ) (DynamicStrings_Length (p)))), DynamicStrings_Mark (p)); + { + Cast ((unsigned char *) &p, (sizeof (p)-1), (unsigned char *) w, _w_high); + p = DynamicStrings_Dup (p); + } + if ((width > 0) && (((int ) (DynamicStrings_Length (p))) < width)) + { + /* avoid gcc warning by using compound statement even if not strictly necessary. */ + if (left) + { + /* place trailing spaces after, p. */ + p = DynamicStrings_ConCat (p, DynamicStrings_Mark (DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitString ((char *) " ", 1)), (unsigned int) width-((int ) (DynamicStrings_Length (p)))))); + } + else + { + /* padd string, p, with leading spaces. */ + p = DynamicStrings_ConCat (DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitString ((char *) " ", 1)), (unsigned int) width-((int ) (DynamicStrings_Length (p)))), DynamicStrings_Mark (p)); + } + } + /* include string, p, into, in. */ + if (nextperc > 0) + { + in = DynamicStrings_ConCat (in, DynamicStrings_Slice (fmt, (*startpos), nextperc)); + } + in = DynamicStrings_ConCat (in, p); + (*startpos) = afterperc; + DSdbExit ((DynamicStrings_String) NULL); + return in; + } + else if (ch == 'd') + { + /* avoid dangling else. */ + afterperc += 1; + Cast ((unsigned char *) &c, (sizeof (c)-1), (unsigned char *) w, _w_high); + in = Copy (fmt, in, (*startpos), nextperc); + in = DynamicStrings_ConCat (in, StringConvert_IntegerToString (c, (unsigned int) width, leader, FALSE, 10, FALSE)); + (*startpos) = afterperc; + DSdbExit ((DynamicStrings_String) NULL); + return in; + } + else if (ch == 'x') + { + /* avoid dangling else. */ + afterperc += 1; + Cast ((unsigned char *) &u, (sizeof (u)-1), (unsigned char *) w, _w_high); + in = DynamicStrings_ConCat (in, DynamicStrings_Slice (fmt, (*startpos), nextperc)); + in = DynamicStrings_ConCat (in, StringConvert_CardinalToString (u, (unsigned int) width, leader, 16, TRUE)); + (*startpos) = afterperc; + DSdbExit ((DynamicStrings_String) NULL); + return in; + } + else if (ch == 'u') + { + /* avoid dangling else. */ + afterperc += 1; + Cast ((unsigned char *) &u, (sizeof (u)-1), (unsigned char *) w, _w_high); + in = DynamicStrings_ConCat (in, DynamicStrings_Slice (fmt, (*startpos), nextperc)); + in = DynamicStrings_ConCat (in, StringConvert_CardinalToString (u, (unsigned int) width, leader, 10, FALSE)); + (*startpos) = afterperc; + DSdbExit ((DynamicStrings_String) NULL); + return in; + } + else + { + /* avoid dangling else. */ + afterperc += 1; + /* copy format string. */ + if (nextperc > 0) + { + in = DynamicStrings_ConCat (in, DynamicStrings_Slice (fmt, (*startpos), nextperc)); + } + /* and the character after the %. */ + in = DynamicStrings_ConCat (in, DynamicStrings_Mark (DynamicStrings_InitStringChar (ch))); } - /* include string, p, into s */ - s = DynamicStrings_ConCat (DynamicStrings_ConCat (DynamicStrings_Slice (s, i, k), DynamicStrings_Mark (p)), DynamicStrings_Mark (DynamicStrings_Slice (s, j+2, 0))); + (*startpos) = afterperc; } - else if (ch == 'd') + else { - Cast ((unsigned char *) &c, (sizeof (c)-1), (unsigned char *) w, _w_high); - s = DynamicStrings_ConCat (DynamicStrings_ConCat (DynamicStrings_Slice (s, i, k), StringConvert_IntegerToString (c, (unsigned int) width, leader, FALSE, 10, FALSE)), DynamicStrings_Mark (DynamicStrings_Slice (s, j+2, 0))); + /* nothing to do. */ + DSdbExit ((DynamicStrings_String) NULL); + return in; } - else if (ch == 'x') + } + DSdbExit ((DynamicStrings_String) NULL); + return in; +} + + +/* + Copy - copies, fmt[start:end] -> in and returns in. Providing that start >= 0. +*/ + +static DynamicStrings_String Copy (DynamicStrings_String fmt, DynamicStrings_String in, int start, int end) +{ + if (start >= 0) + { + /* avoid gcc warning by using compound statement even if not strictly necessary. */ + if (end > 0) { - Cast ((unsigned char *) &u, (sizeof (u)-1), (unsigned char *) w, _w_high); - s = DynamicStrings_ConCat (DynamicStrings_ConCat (DynamicStrings_Slice (s, i, k), StringConvert_CardinalToString (u, (unsigned int) width, leader, 16, TRUE)), DynamicStrings_Mark (DynamicStrings_Slice (s, j+2, 0))); + in = DynamicStrings_ConCat (in, DynamicStrings_Mark (DynamicStrings_Slice (fmt, start, end))); } - else if (ch == 'u') + else if (end < 0) { - Cast ((unsigned char *) &u, (sizeof (u)-1), (unsigned char *) w, _w_high); - s = DynamicStrings_ConCat (DynamicStrings_ConCat (DynamicStrings_Slice (s, i, k), StringConvert_CardinalToString (u, (unsigned int) width, leader, 10, FALSE)), DynamicStrings_Mark (DynamicStrings_Slice (s, j+2, 0))); + /* avoid dangling else. */ + in = DynamicStrings_ConCat (in, DynamicStrings_Mark (DynamicStrings_Slice (fmt, start, 0))); } - else - s = DynamicStrings_ConCat (DynamicStrings_ConCat (DynamicStrings_Slice (s, i, k), DynamicStrings_Mark (DynamicStrings_InitStringChar (ch))), DynamicStrings_Mark (DynamicStrings_Slice (s, j+1, 0))); + } + return in; +} + + +/* + HandlePercent - pre-condition: s, is a string. + Post-condition: a new string is returned which is a copy of, + s, except %% is transformed into %. +*/ + +static DynamicStrings_String HandlePercent (DynamicStrings_String fmt, DynamicStrings_String s, int startpos) +{ + int prevpos; + DynamicStrings_String result; + + if ((startpos == (DynamicStrings_Length (fmt))) || (startpos < 0)) + { + return s; } else - s = DynamicStrings_Dup (s); - DSdbExit (s); - return s; + { + prevpos = startpos; + while ((startpos >= 0) && (prevpos < ((int ) (DynamicStrings_Length (fmt))))) + { + startpos = DynamicStrings_Index (fmt, '%', (unsigned int) startpos); + if (startpos >= prevpos) + { + if (startpos > 0) + { + s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_Slice (fmt, prevpos, startpos))); + } + startpos += 1; + if ((DynamicStrings_char (fmt, startpos)) == '%') + { + s = DynamicStrings_ConCatChar (s, '%'); + startpos += 1; + } + prevpos = startpos; + } + } + if (prevpos < ((int ) (DynamicStrings_Length (fmt)))) + { + s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_Slice (fmt, prevpos, 0))); + } + return s; + } } @@ -341,10 +526,13 @@ static DynamicStrings_String FormatString (DynamicStrings_String s, unsigned cha escape sequences translated. */ -DynamicStrings_String FormatStrings_Sprintf0 (DynamicStrings_String s) +DynamicStrings_String FormatStrings_Sprintf0 (DynamicStrings_String fmt) { + DynamicStrings_String s; + DSdbEnter (); - s = HandleEscape (s); + fmt = HandleEscape (fmt); + s = HandlePercent (fmt, DynamicStrings_InitString ((char *) "", 0), 0); DSdbExit (s); return s; } @@ -355,15 +543,20 @@ DynamicStrings_String FormatStrings_Sprintf0 (DynamicStrings_String s) entity, w. It only formats the first %s or %d with n. */ -DynamicStrings_String FormatStrings_Sprintf1 (DynamicStrings_String s, unsigned char *w_, unsigned int _w_high) +DynamicStrings_String FormatStrings_Sprintf1 (DynamicStrings_String fmt, unsigned char *w_, unsigned int _w_high) { + int i; + DynamicStrings_String s; unsigned char w[_w_high+1]; /* make a local copy of each unbounded array. */ memcpy (w, w_, _w_high+1); DSdbEnter (); - s = FormatString (HandleEscape (s), (unsigned char *) w, _w_high); + fmt = HandleEscape (fmt); + i = 0; + s = FormatString (fmt, &i, DynamicStrings_InitString ((char *) "", 0), (unsigned char *) w, _w_high); + s = HandlePercent (fmt, s, i); DSdbExit (s); return s; } @@ -373,8 +566,10 @@ DynamicStrings_String FormatStrings_Sprintf1 (DynamicStrings_String s, unsigned Sprintf2 - returns a string, s, which has been formatted. */ -DynamicStrings_String FormatStrings_Sprintf2 (DynamicStrings_String s, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high) +DynamicStrings_String FormatStrings_Sprintf2 (DynamicStrings_String fmt, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high) { + int i; + DynamicStrings_String s; unsigned char w1[_w1_high+1]; unsigned char w2[_w2_high+1]; @@ -383,7 +578,11 @@ DynamicStrings_String FormatStrings_Sprintf2 (DynamicStrings_String s, unsigned memcpy (w2, w2_, _w2_high+1); DSdbEnter (); - s = FormatString (FormatString (HandleEscape (s), (unsigned char *) w1, _w1_high), (unsigned char *) w2, _w2_high); + fmt = HandleEscape (fmt); + i = 0; + s = FormatString (fmt, &i, DynamicStrings_InitString ((char *) "", 0), (unsigned char *) w1, _w1_high); + s = FormatString (fmt, &i, s, (unsigned char *) w2, _w2_high); + s = HandlePercent (fmt, s, i); DSdbExit (s); return s; } @@ -393,8 +592,10 @@ DynamicStrings_String FormatStrings_Sprintf2 (DynamicStrings_String s, unsigned Sprintf3 - returns a string, s, which has been formatted. */ -DynamicStrings_String FormatStrings_Sprintf3 (DynamicStrings_String s, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high, unsigned char *w3_, unsigned int _w3_high) +DynamicStrings_String FormatStrings_Sprintf3 (DynamicStrings_String fmt, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high, unsigned char *w3_, unsigned int _w3_high) { + int i; + DynamicStrings_String s; unsigned char w1[_w1_high+1]; unsigned char w2[_w2_high+1]; unsigned char w3[_w3_high+1]; @@ -405,7 +606,12 @@ DynamicStrings_String FormatStrings_Sprintf3 (DynamicStrings_String s, unsigned memcpy (w3, w3_, _w3_high+1); DSdbEnter (); - s = FormatString (FormatString (FormatString (HandleEscape (s), (unsigned char *) w1, _w1_high), (unsigned char *) w2, _w2_high), (unsigned char *) w3, _w3_high); + fmt = HandleEscape (fmt); + i = 0; + s = FormatString (fmt, &i, DynamicStrings_InitString ((char *) "", 0), (unsigned char *) w1, _w1_high); + s = FormatString (fmt, &i, s, (unsigned char *) w2, _w2_high); + s = FormatString (fmt, &i, s, (unsigned char *) w3, _w3_high); + s = HandlePercent (fmt, s, i); DSdbExit (s); return s; } @@ -415,8 +621,10 @@ DynamicStrings_String FormatStrings_Sprintf3 (DynamicStrings_String s, unsigned Sprintf4 - returns a string, s, which has been formatted. */ -DynamicStrings_String FormatStrings_Sprintf4 (DynamicStrings_String s, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high, unsigned char *w3_, unsigned int _w3_high, unsigned char *w4_, unsigned int _w4_high) +DynamicStrings_String FormatStrings_Sprintf4 (DynamicStrings_String fmt, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high, unsigned char *w3_, unsigned int _w3_high, unsigned char *w4_, unsigned int _w4_high) { + int i; + DynamicStrings_String s; unsigned char w1[_w1_high+1]; unsigned char w2[_w2_high+1]; unsigned char w3[_w3_high+1]; @@ -429,7 +637,13 @@ DynamicStrings_String FormatStrings_Sprintf4 (DynamicStrings_String s, unsigned memcpy (w4, w4_, _w4_high+1); DSdbEnter (); - s = FormatString (FormatString (FormatString (FormatString (HandleEscape (s), (unsigned char *) w1, _w1_high), (unsigned char *) w2, _w2_high), (unsigned char *) w3, _w3_high), (unsigned char *) w4, _w4_high); + fmt = HandleEscape (fmt); + i = 0; + s = FormatString (fmt, &i, DynamicStrings_InitString ((char *) "", 0), (unsigned char *) w1, _w1_high); + s = FormatString (fmt, &i, s, (unsigned char *) w2, _w2_high); + s = FormatString (fmt, &i, s, (unsigned char *) w3, _w3_high); + s = FormatString (fmt, &i, s, (unsigned char *) w4, _w4_high); + s = HandlePercent (fmt, s, i); DSdbExit (s); return s; } --- a/src/gcc/gm2/mc-boot/GFormatStrings.h +++ b/src/gcc/gm2/mc-boot/GFormatStrings.h @@ -23,36 +23,36 @@ extern "C" { /* - Sprintf0 - returns a String containing, s, after it has had its + Sprintf0 - returns a String containing, fmt, after it has had its escape sequences translated. */ -EXTERN DynamicStrings_String FormatStrings_Sprintf0 (DynamicStrings_String s); +EXTERN DynamicStrings_String FormatStrings_Sprintf0 (DynamicStrings_String fmt); /* - Sprintf1 - returns a String containing, s, together with encapsulated + Sprintf1 - returns a String containing, fmt, together with encapsulated entity, w. It only formats the first %s or %d with n. */ -EXTERN DynamicStrings_String FormatStrings_Sprintf1 (DynamicStrings_String s, unsigned char *w_, unsigned int _w_high); +EXTERN DynamicStrings_String FormatStrings_Sprintf1 (DynamicStrings_String fmt, unsigned char *w_, unsigned int _w_high); /* - Sprintf2 - returns a string, s, which has been formatted. + Sprintf2 - returns a string, fmt, which has been formatted. */ -EXTERN DynamicStrings_String FormatStrings_Sprintf2 (DynamicStrings_String s, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high); +EXTERN DynamicStrings_String FormatStrings_Sprintf2 (DynamicStrings_String fmt, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high); /* - Sprintf3 - returns a string, s, which has been formatted. + Sprintf3 - returns a string, fmt, which has been formatted. */ -EXTERN DynamicStrings_String FormatStrings_Sprintf3 (DynamicStrings_String s, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high, unsigned char *w3_, unsigned int _w3_high); +EXTERN DynamicStrings_String FormatStrings_Sprintf3 (DynamicStrings_String fmt, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high, unsigned char *w3_, unsigned int _w3_high); /* - Sprintf4 - returns a string, s, which has been formatted. + Sprintf4 - returns a string, fmt, which has been formatted. */ -EXTERN DynamicStrings_String FormatStrings_Sprintf4 (DynamicStrings_String s, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high, unsigned char *w3_, unsigned int _w3_high, unsigned char *w4_, unsigned int _w4_high); +EXTERN DynamicStrings_String FormatStrings_Sprintf4 (DynamicStrings_String fmt, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high, unsigned char *w3_, unsigned int _w3_high, unsigned char *w4_, unsigned int _w4_high); # ifdef __cplusplus } # endif --- a/src/gcc/gm2/mc-boot/GIO.c +++ b/src/gcc/gm2/mc-boot/GIO.c @@ -157,24 +157,31 @@ static void doWrite (int fd, FIO_File f, char ch) { /* avoid dangling else. */ if (! fdState.array[fd].IsEof) - for (;;) { - r = libc_write (FIO_GetUnixFileDescriptor (f), &ch, (size_t) 1); - if (r == 1) - return; - else if (r == -1) - { - r = errno_geterrno (); - if ((r != errno_EAGAIN) && (r != errno_EINTR)) - { - fdState.array[fd].IsEof = TRUE; - return; - } - } + for (;;) + { + r = libc_write (FIO_GetUnixFileDescriptor (f), &ch, (size_t) 1); + if (r == 1) + { + return; + } + else if (r == -1) + { + /* avoid dangling else. */ + r = errno_geterrno (); + if ((r != errno_EAGAIN) && (r != errno_EINTR)) + { + fdState.array[fd].IsEof = TRUE; + return; + } + } + } } } else - FIO_WriteChar (f, ch); + { + FIO_WriteChar (f, ch); + } } @@ -285,27 +292,38 @@ void IO_Read (char *ch) FIO_FlushBuffer (FIO_StdOut); FIO_FlushBuffer (FIO_StdErr); if (fdState.array[0].IsRaw) - if (fdState.array[0].IsEof) - (*ch) = ASCII_eof; - else - for (;;) - { - r = libc_read (FIO_GetUnixFileDescriptor (FIO_StdIn), ch, (size_t) 1); - if (r == 1) - return; - else if (r == -1) + { + if (fdState.array[0].IsEof) + { + (*ch) = ASCII_eof; + } + else + { + for (;;) { - r = errno_geterrno (); - if (r != errno_EAGAIN) + r = libc_read (FIO_GetUnixFileDescriptor (FIO_StdIn), ch, (size_t) 1); + if (r == 1) { - fdState.array[0].IsEof = TRUE; - (*ch) = ASCII_eof; return; } + else if (r == -1) + { + /* avoid dangling else. */ + r = errno_geterrno (); + if (r != errno_EAGAIN) + { + fdState.array[0].IsEof = TRUE; + (*ch) = ASCII_eof; + return; + } + } } - } + } + } else - (*ch) = FIO_ReadChar (FIO_StdIn); + { + (*ch) = FIO_ReadChar (FIO_StdIn); + } } @@ -336,15 +354,21 @@ void IO_UnBufferedMode (int fd, unsigned int input) int r; if (IsDefaultFd (fd)) - fdState.array[fd].IsRaw = TRUE; + { + fdState.array[fd].IsRaw = TRUE; + } term = termios_InitTermios (); if ((termios_tcgetattr (fd, term)) == 0) { doraw (term); if (input) - r = termios_tcsetattr (fd, termios_tcsflush (), term); + { + r = termios_tcsetattr (fd, termios_tcsflush (), term); + } else - r = termios_tcsetattr (fd, termios_tcsdrain (), term); + { + r = termios_tcsetattr (fd, termios_tcsdrain (), term); + } } term = termios_KillTermios (term); } @@ -355,15 +379,21 @@ void IO_BufferedMode (int fd, unsigned int input) int r; if (IsDefaultFd (fd)) - fdState.array[fd].IsRaw = FALSE; + { + fdState.array[fd].IsRaw = FALSE; + } term = termios_InitTermios (); if ((termios_tcgetattr (fd, term)) == 0) { dononraw (term); if (input) - r = termios_tcsetattr (fd, termios_tcsflush (), term); + { + r = termios_tcsetattr (fd, termios_tcsflush (), term); + } else - r = termios_tcsetattr (fd, termios_tcsdrain (), term); + { + r = termios_tcsetattr (fd, termios_tcsdrain (), term); + } } term = termios_KillTermios (term); } @@ -387,9 +417,13 @@ void IO_EchoOn (int fd, unsigned int input) { setFlag (term, (termios_Flag) termios_lecho, TRUE); if (input) - r = termios_tcsetattr (fd, termios_tcsflush (), term); + { + r = termios_tcsetattr (fd, termios_tcsflush (), term); + } else - r = termios_tcsetattr (fd, termios_tcsdrain (), term); + { + r = termios_tcsetattr (fd, termios_tcsdrain (), term); + } } term = termios_KillTermios (term); } @@ -413,9 +447,13 @@ void IO_EchoOff (int fd, unsigned int input) { setFlag (term, (termios_Flag) termios_lecho, FALSE); if (input) - r = termios_tcsetattr (fd, termios_tcsflush (), term); + { + r = termios_tcsetattr (fd, termios_tcsflush (), term); + } else - r = termios_tcsetattr (fd, termios_tcsdrain (), term); + { + r = termios_tcsetattr (fd, termios_tcsdrain (), term); + } } term = termios_KillTermios (term); } --- a/src/gcc/gm2/mc-boot/GIndexing.c +++ b/src/gcc/gm2/mc-boot/GIndexing.c @@ -202,9 +202,13 @@ Indexing_Index Indexing_DebugIndex (Indexing_Index i) unsigned int Indexing_InBounds (Indexing_Index i, unsigned int n) { if (i == NULL) - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } else - return (n >= i->Low) && (n <= i->High); + { + return (n >= i->Low) && (n <= i->High); + } } @@ -215,9 +219,13 @@ unsigned int Indexing_InBounds (Indexing_Index i, unsigned int n) unsigned int Indexing_HighIndice (Indexing_Index i) { if (i == NULL) - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } else - return i->High; + { + return i->High; + } } @@ -228,9 +236,13 @@ unsigned int Indexing_HighIndice (Indexing_Index i) unsigned int Indexing_LowIndice (Indexing_Index i) { if (i == NULL) - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } else - return i->Low; + { + return i->Low; + } } @@ -248,12 +260,16 @@ void Indexing_PutIndice (Indexing_Index i, unsigned int n, void * a) { /* avoid gcc warning by using compound statement even if not strictly necessary. */ if (n < i->Low) - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } else { oldSize = i->ArraySize; - while (((n-i->Low)*(sizeof (void *))) >= i->ArraySize) - i->ArraySize = i->ArraySize*2; + while (((n-i->Low)*sizeof (void *)) >= i->ArraySize) + { + i->ArraySize = i->ArraySize*2; + } if (oldSize != i->ArraySize) { /* @@ -274,13 +290,17 @@ void Indexing_PutIndice (Indexing_Index i, unsigned int n, void * a) } } b = i->ArrayStart; - b += (n-i->Low)*(sizeof (void *)); + b += (n-i->Low)*sizeof (void *); p = b; (*p) = a; i->Used += 1; if (i->Debug) - if (n < 32) - i->Map |= (1 << (n )); + { + if (n < 32) + { + i->Map |= (1 << (n )); + } + } } @@ -294,13 +314,19 @@ void * Indexing_GetIndice (Indexing_Index i, unsigned int n) PtrToAddress p; if (! (Indexing_InBounds (i, n))) - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } b = i->ArrayStart; - b += (n-i->Low)*(sizeof (void *)); + b += (n-i->Low)*sizeof (void *); p = (PtrToAddress) (b); if (i->Debug) - if (((n < 32) && (! ((((1 << (n)) & (i->Map)) != 0)))) && ((*p) != NULL)) - M2RTS_HALT (-1); + { + if (((n < 32) && (! ((((1 << (n)) & (i->Map)) != 0)))) && ((*p) != NULL)) + { + M2RTS_HALT (-1); + } + } return (*p); } @@ -321,7 +347,9 @@ unsigned int Indexing_IsIndiceInIndex (Indexing_Index i, void * a) { p = (PtrToAddress) (b); if ((*p) == a) - return TRUE; + { + return TRUE; + } /* we must not INC(p, ..) as p2c gets confused */ b += sizeof (void *); j += 1; @@ -348,7 +376,9 @@ void Indexing_RemoveIndiceFromIndex (Indexing_Index i, void * a) p = (PtrToAddress) (b); b += sizeof (void *); if ((*p) == a) - Indexing_DeleteIndice (i, j); + { + Indexing_DeleteIndice (i, j); + } j += 1; } } @@ -366,15 +396,17 @@ void Indexing_DeleteIndice (Indexing_Index i, unsigned int j) if (Indexing_InBounds (i, j)) { b = i->ArrayStart; - b += (sizeof (void *))*(j-i->Low); + b += sizeof (void *)*(j-i->Low); p = (PtrToAddress) (b); b += sizeof (void *); - p = libc_memmove ((void *) p, (void *) b, (size_t) (i->High-j)*(sizeof (void *))); + p = libc_memmove ((void *) p, (void *) b, (size_t) (i->High-j)*sizeof (void *)); i->High -= 1; i->Used -= 1; } else - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } } @@ -389,9 +421,13 @@ void Indexing_IncludeIndiceIntoIndex (Indexing_Index i, void * a) { /* avoid gcc warning by using compound statement even if not strictly necessary. */ if (i->Used == 0) - Indexing_PutIndice (i, Indexing_LowIndice (i), a); + { + Indexing_PutIndice (i, Indexing_LowIndice (i), a); + } else - Indexing_PutIndice (i, (Indexing_HighIndice (i))+1, a); + { + Indexing_PutIndice (i, (Indexing_HighIndice (i))+1, a); + } } } --- a/src/gcc/gm2/mc-boot/GM2EXCEPTION.c +++ b/src/gcc/gm2/mc-boot/GM2EXCEPTION.c @@ -45,9 +45,13 @@ M2EXCEPTION_M2Exceptions M2EXCEPTION_M2Exception (void) e = RTExceptions_GetExceptionBlock (); n = RTExceptions_GetNumber (e); if (n == (UINT_MAX)) - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_exException), "../../gcc-versionno/gcc/gm2/gm2-libs/M2EXCEPTION.mod", 39, 6, "M2Exception", "current coroutine is not in the exceptional execution state"); + { + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_exException)), "../../gcc-versionno/gcc/gm2/gm2-libs/M2EXCEPTION.mod", 39, 6, "M2Exception", "current coroutine is not in the exceptional execution state"); + } else - return (M2EXCEPTION_M2Exceptions) (n); + { + return (M2EXCEPTION_M2Exceptions) (n); + } ReturnException ("../../gcc-versionno/gcc/gm2/gm2-libs/M2EXCEPTION.def", 8, 1); } --- a/src/gcc/gm2/mc-boot/GM2RTS.c +++ b/src/gcc/gm2/mc-boot/GM2RTS.c @@ -209,7 +209,9 @@ void M2RTS_ExecuteTerminationProcedures (void) unsigned int M2RTS_InstallTerminationProcedure (PROC p) { if (tPtr > MaxProcedures) - return FALSE; + { + return FALSE; + } else { TerminateProc.array[tPtr] = p; @@ -245,7 +247,9 @@ void M2RTS_ExecuteInitialProcedures (void) unsigned int M2RTS_InstallInitialProcedure (PROC p) { if (iPtr > MaxProcedures) - return FALSE; + { + return FALSE; + } else { InitialProc.array[iPtr] = p; @@ -287,17 +291,23 @@ void M2RTS_HALT (int exitcode) ExitValue = exitcode; } if (isHalting) - /* double HALT found */ - libc_exit (-1); + { + /* double HALT found */ + libc_exit (-1); + } else { isHalting = TRUE; M2RTS_ExecuteTerminationProcedures (); } if (CallExit) - libc_exit (ExitValue); + { + libc_exit (ExitValue); + } else - libc_abort (); + { + libc_abort (); + } } @@ -389,7 +399,9 @@ unsigned int M2RTS_Length (char *a_, unsigned int _a_high) l = 0; h = _a_high; while ((l <= h) && (a[l] != ASCII_nul)) - l += 1; + { + l += 1; + } return l; } @@ -398,117 +410,117 @@ void M2RTS_AssignmentException (void * filename, unsigned int line, unsigned int /* The following are the runtime exception handler routines. */ - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_rangeException), filename, line, column, scope, "variable exceeds range during assignment"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_rangeException)), filename, line, column, scope, "variable exceeds range during assignment"); } void M2RTS_ReturnException (void * filename, unsigned int line, unsigned int column, void * scope) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_rangeException), filename, line, column, scope, "return value from procedure function exceeds range"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_rangeException)), filename, line, column, scope, "return value from procedure function exceeds range"); } void M2RTS_IncException (void * filename, unsigned int line, unsigned int column, void * scope) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_rangeException), filename, line, column, scope, "variable exceeds range during INC statement"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_rangeException)), filename, line, column, scope, "variable exceeds range during INC statement"); } void M2RTS_DecException (void * filename, unsigned int line, unsigned int column, void * scope) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_rangeException), filename, line, column, scope, "variable exceeds range during DEC statement"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_rangeException)), filename, line, column, scope, "variable exceeds range during DEC statement"); } void M2RTS_InclException (void * filename, unsigned int line, unsigned int column, void * scope) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_rangeException), filename, line, column, scope, "bit exceeds set range during INCL statement"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_rangeException)), filename, line, column, scope, "bit exceeds set range during INCL statement"); } void M2RTS_ExclException (void * filename, unsigned int line, unsigned int column, void * scope) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_rangeException), filename, line, column, scope, "bit exceeds set range during EXCL statement"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_rangeException)), filename, line, column, scope, "bit exceeds set range during EXCL statement"); } void M2RTS_ShiftException (void * filename, unsigned int line, unsigned int column, void * scope) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_rangeException), filename, line, column, scope, "bit exceeds set range during SHIFT statement"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_rangeException)), filename, line, column, scope, "bit exceeds set range during SHIFT statement"); } void M2RTS_RotateException (void * filename, unsigned int line, unsigned int column, void * scope) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_rangeException), filename, line, column, scope, "bit exceeds set range during ROTATE statement"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_rangeException)), filename, line, column, scope, "bit exceeds set range during ROTATE statement"); } void M2RTS_StaticArraySubscriptException (void * filename, unsigned int line, unsigned int column, void * scope) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_indexException), filename, line, column, scope, "array index out of bounds during static array access"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_indexException)), filename, line, column, scope, "array index out of bounds during static array access"); } void M2RTS_DynamicArraySubscriptException (void * filename, unsigned int line, unsigned int column, void * scope) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_indexException), filename, line, column, scope, "array index out of bounds during dynamic array access"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_indexException)), filename, line, column, scope, "array index out of bounds during dynamic array access"); } void M2RTS_ForLoopBeginException (void * filename, unsigned int line, unsigned int column, void * scope) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_rangeException), filename, line, column, scope, "iterator variable exceeds range during FOR loop initial assignment"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_rangeException)), filename, line, column, scope, "iterator variable exceeds range during FOR loop initial assignment"); } void M2RTS_ForLoopToException (void * filename, unsigned int line, unsigned int column, void * scope) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_rangeException), filename, line, column, scope, "iterator variable will exceed range when calculating final value in FOR loop"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_rangeException)), filename, line, column, scope, "iterator variable will exceed range when calculating final value in FOR loop"); } void M2RTS_ForLoopEndException (void * filename, unsigned int line, unsigned int column, void * scope) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_rangeException), filename, line, column, scope, "iterator variable exceeds range during increment at the end of a FOR loop"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_rangeException)), filename, line, column, scope, "iterator variable exceeds range during increment at the end of a FOR loop"); } void M2RTS_PointerNilException (void * filename, unsigned int line, unsigned int column, void * scope) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_invalidLocation), filename, line, column, scope, "attempting to dereference a NIL valued pointer"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_invalidLocation)), filename, line, column, scope, "attempting to dereference a NIL valued pointer"); } void M2RTS_NoReturnException (void * filename, unsigned int line, unsigned int column, void * scope) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_functionException), filename, line, column, scope, "about to finish a PROCEDURE without executing a RETURN statement"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_functionException)), filename, line, column, scope, "about to finish a PROCEDURE without executing a RETURN statement"); } void M2RTS_CaseException (void * filename, unsigned int line, unsigned int column, void * scope) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_caseSelectException), filename, line, column, scope, "the expression in the CASE statement cannot be selected"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_caseSelectException)), filename, line, column, scope, "the expression in the CASE statement cannot be selected"); } void M2RTS_WholeNonPosDivException (void * filename, unsigned int line, unsigned int column, void * scope) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_wholeDivException), filename, line, column, scope, "the division expression has a divisor which is less than or equal to zero"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_wholeDivException)), filename, line, column, scope, "the division expression has a divisor which is less than or equal to zero"); } void M2RTS_WholeNonPosModException (void * filename, unsigned int line, unsigned int column, void * scope) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_wholeDivException), filename, line, column, scope, "the modulus expression has a divisor which is less than or equal to zero"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_wholeDivException)), filename, line, column, scope, "the modulus expression has a divisor which is less than or equal to zero"); } void M2RTS_WholeZeroDivException (void * filename, unsigned int line, unsigned int column, void * scope) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_wholeDivException), filename, line, column, scope, "the division expression has a divisor which is equal to zero"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_wholeDivException)), filename, line, column, scope, "the division expression has a divisor which is equal to zero"); } void M2RTS_WholeZeroRemException (void * filename, unsigned int line, unsigned int column, void * scope) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_wholeDivException), filename, line, column, scope, "the remainder expression has a divisor which is equal to zero"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_wholeDivException)), filename, line, column, scope, "the remainder expression has a divisor which is equal to zero"); } void M2RTS_WholeValueException (void * filename, unsigned int line, unsigned int column, void * scope) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_wholeValueException), filename, line, column, scope, "the whole value is about to overflow"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_wholeValueException)), filename, line, column, scope, "the whole value is about to overflow"); } void M2RTS_RealValueException (void * filename, unsigned int line, unsigned int column, void * scope) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_realValueException), filename, line, column, scope, "the floating point value is about to overflow"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_realValueException)), filename, line, column, scope, "the floating point value is about to overflow"); } void M2RTS_NoException (void * filename, unsigned int line, unsigned int column, void * scope) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_exException), filename, line, column, scope, "M2Expection was called when no there was no outstanding exception to be returned"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_exException)), filename, line, column, scope, "M2Expection was called when no there was no outstanding exception to be returned"); } void _M2_M2RTS_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[]) --- a/src/gcc/gm2/mc-boot/GMemUtils.c +++ b/src/gcc/gm2/mc-boot/GMemUtils.c @@ -50,23 +50,23 @@ void MemUtils_MemCopy (void * from, unsigned int length, void * to) unsigned char * pbb; unsigned char * pba; - while (length >= (sizeof (unsigned int))) + while (length >= sizeof (unsigned int )) { pwa = from; pwb = to; (*pwb) = (*pwa); - from += sizeof (unsigned int); - to += sizeof (unsigned int); - length -= sizeof (unsigned int); + from += sizeof (unsigned int ); + to += sizeof (unsigned int ); + length -= sizeof (unsigned int ); } while (length > 0) { pba = from; pbb = to; (*pbb) = (*pba); - from += sizeof (unsigned char); - to += sizeof (unsigned char); - length -= sizeof (unsigned char); + from += sizeof (unsigned char ); + to += sizeof (unsigned char ); + length -= sizeof (unsigned char ); } } @@ -81,18 +81,18 @@ void MemUtils_MemZero (void * a, unsigned int length) unsigned char * pba; pwa = a; - while (length >= (sizeof (unsigned int))) + while (length >= sizeof (unsigned int )) { (*pwa) = (unsigned int ) (0); - pwa += sizeof (unsigned int); - length -= sizeof (unsigned int); + pwa += sizeof (unsigned int ); + length -= sizeof (unsigned int ); } pba = (void *) (pwa); - while (length >= (sizeof (unsigned char))) + while (length >= sizeof (unsigned char )) { (*pba) = (unsigned char ) (0); - pba += sizeof (unsigned char); - length -= sizeof (unsigned char); + pba += sizeof (unsigned char ); + length -= sizeof (unsigned char ); } } --- a/src/gcc/gm2/mc-boot/GNumberIO.c +++ b/src/gcc/gm2/mc-boot/GNumberIO.c @@ -166,12 +166,14 @@ void NumberIO_CardToStr (unsigned int x, unsigned int n, char *a, unsigned int _ } while ((i > 0) && (j <= Higha)) { - a[j] = (char) (buf.array[i-1]+((unsigned int) ('0'))); + a[j] = ((char) (buf.array[i-1]+ ((unsigned int) ('0')))); j += 1; i -= 1; } if (j <= Higha) - a[j] = ASCII_nul; + { + a[j] = ASCII_nul; + } } void NumberIO_StrToCard (char *a_, unsigned int _a_high, unsigned int *x) @@ -189,28 +191,42 @@ void NumberIO_StrToCard (char *a_, unsigned int _a_high, unsigned int *x) i = 0; ok = TRUE; while (ok) - if (i < higha) - if ((a[i] < '0') || (a[i] > '9')) - i += 1; + { + if (i < higha) + { + if ((a[i] < '0') || (a[i] > '9')) + { + i += 1; + } + else + { + ok = FALSE; + } + } else - ok = FALSE; - else - ok = FALSE; + { + ok = FALSE; + } + } (*x) = 0; if (i < higha) { ok = TRUE; do { - (*x) = (10*(*x))+(((unsigned int) (a[i]))-((unsigned int) ('0'))); + (*x) = (10*(*x))+( ((unsigned int) (a[i]))- ((unsigned int) ('0'))); if (i < higha) { /* avoid dangling else. */ i += 1; if ((a[i] < '0') || (a[i] > '9')) - ok = FALSE; + { + ok = FALSE; + } } else - ok = FALSE; + { + ok = FALSE; + } } while (! (! ok)); } } @@ -248,14 +264,20 @@ void NumberIO_HexToStr (unsigned int x, unsigned int n, char *a, unsigned int _a while ((i != 0) && (j <= Higha)) { if (buf.array[i-1] < 10) - a[j] = (char) (buf.array[i-1]+((unsigned int) ('0'))); + { + a[j] = ((char) (buf.array[i-1]+ ((unsigned int) ('0')))); + } else - a[j] = (char) ((buf.array[i-1]+((unsigned int) ('A')))-10); + { + a[j] = ((char) ((buf.array[i-1]+ ((unsigned int) ('A')))-10)); + } j += 1; i -= 1; } if (j <= Higha) - a[j] = ASCII_nul; + { + a[j] = ASCII_nul; + } } void NumberIO_StrToHex (char *a_, unsigned int _a_high, unsigned int *x) @@ -288,7 +310,9 @@ void NumberIO_IntToStr (int x, unsigned int n, char *a, unsigned int _a_high) Negative = TRUE; c = ((unsigned int ) (abs (x+1)))+1; if (n > 0) - n -= 1; + { + n -= 1; + } } else { @@ -322,12 +346,14 @@ void NumberIO_IntToStr (int x, unsigned int n, char *a, unsigned int _a_high) } while ((i != 0) && (j <= Higha)) { - a[j] = (char) (buf.array[i-1]+((unsigned int) ('0'))); + a[j] = ((char) (buf.array[i-1]+ ((unsigned int) ('0')))); j += 1; i -= 1; } if (j <= Higha) - a[j] = ASCII_nul; + { + a[j] = ASCII_nul; + } } void NumberIO_StrToInt (char *a_, unsigned int _a_high, int *x) @@ -347,36 +373,56 @@ void NumberIO_StrToInt (char *a_, unsigned int _a_high, int *x) Negative = FALSE; ok = TRUE; while (ok) - if (i < higha) - if (a[i] == '-') + { + if (i < higha) { - i += 1; - Negative = ! Negative; + if (a[i] == '-') + { + i += 1; + Negative = ! Negative; + } + else if ((a[i] < '0') || (a[i] > '9')) + { + /* avoid dangling else. */ + i += 1; + } + else + { + /* avoid dangling else. */ + ok = FALSE; + } } - else if ((a[i] < '0') || (a[i] > '9')) - i += 1; else - ok = FALSE; - else - ok = FALSE; + { + ok = FALSE; + } + } (*x) = 0; if (i < higha) { ok = TRUE; do { if (Negative) - (*x) = (10*(*x))-((int ) (((unsigned int) (a[i]))-((unsigned int) ('0')))); + { + (*x) = (10*(*x))-((int ) ( ((unsigned int) (a[i]))- ((unsigned int) ('0')))); + } else - (*x) = (10*(*x))+((int ) (((unsigned int) (a[i]))-((unsigned int) ('0')))); + { + (*x) = (10*(*x))+((int ) ( ((unsigned int) (a[i]))- ((unsigned int) ('0')))); + } if (i < higha) { /* avoid dangling else. */ i += 1; if ((a[i] < '0') || (a[i] > '9')) - ok = FALSE; + { + ok = FALSE; + } } else - ok = FALSE; + { + ok = FALSE; + } } while (! (! ok)); } } @@ -435,12 +481,14 @@ void NumberIO_OctToStr (unsigned int x, unsigned int n, char *a, unsigned int _a } while ((i > 0) && (j <= Higha)) { - a[j] = (char) (buf.array[i-1]+((unsigned int) ('0'))); + a[j] = ((char) (buf.array[i-1]+ ((unsigned int) ('0')))); j += 1; i -= 1; } if (j <= Higha) - a[j] = ASCII_nul; + { + a[j] = ASCII_nul; + } } void NumberIO_StrToOct (char *a_, unsigned int _a_high, unsigned int *x) @@ -509,12 +557,14 @@ void NumberIO_BinToStr (unsigned int x, unsigned int n, char *a, unsigned int _a } while ((i > 0) && (j <= Higha)) { - a[j] = (char) (buf.array[i-1]+((unsigned int) ('0'))); + a[j] = ((char) (buf.array[i-1]+ ((unsigned int) ('0')))); j += 1; i -= 1; } if (j <= Higha) - a[j] = ASCII_nul; + { + a[j] = ASCII_nul; + } } void NumberIO_StrToBin (char *a_, unsigned int _a_high, unsigned int *x) @@ -544,28 +594,42 @@ void NumberIO_StrToBinInt (char *a_, unsigned int _a_high, int *x) i = 0; ok = TRUE; while (ok) - if (i < higha) - if ((a[i] < '0') || (a[i] > '1')) - i += 1; + { + if (i < higha) + { + if ((a[i] < '0') || (a[i] > '1')) + { + i += 1; + } + else + { + ok = FALSE; + } + } else - ok = FALSE; - else - ok = FALSE; + { + ok = FALSE; + } + } (*x) = 0; if (i < higha) { ok = TRUE; do { - (*x) = (2*(*x))+((int ) (((unsigned int) (a[i]))-((unsigned int) ('0')))); + (*x) = (2*(*x))+((int ) ( ((unsigned int) (a[i]))- ((unsigned int) ('0')))); if (i < higha) { /* avoid dangling else. */ i += 1; if ((a[i] < '0') || (a[i] > '1')) - ok = FALSE; + { + ok = FALSE; + } } else - ok = FALSE; + { + ok = FALSE; + } } while (! (! ok)); } } @@ -585,31 +649,50 @@ void NumberIO_StrToHexInt (char *a_, unsigned int _a_high, int *x) i = 0; ok = TRUE; while (ok) - if (i < higha) - if (((a[i] >= '0') && (a[i] <= '9')) || ((a[i] >= 'A') && (a[i] <= 'F'))) - ok = FALSE; + { + if (i < higha) + { + if (((a[i] >= '0') && (a[i] <= '9')) || ((a[i] >= 'A') && (a[i] <= 'F'))) + { + ok = FALSE; + } + else + { + i += 1; + } + } else - i += 1; - else - ok = FALSE; + { + ok = FALSE; + } + } (*x) = 0; if (i < higha) { ok = TRUE; do { if ((a[i] >= '0') && (a[i] <= '9')) - (*x) = (0x010*(*x))+((int ) (((unsigned int) (a[i]))-((unsigned int) ('0')))); + { + (*x) = (0x010*(*x))+((int ) ( ((unsigned int) (a[i]))- ((unsigned int) ('0')))); + } else if ((a[i] >= 'A') && (a[i] <= 'F')) - (*x) = (0x010*(*x))+((int ) ((((unsigned int) (a[i]))-((unsigned int) ('A')))+10)); + { + /* avoid dangling else. */ + (*x) = (0x010*(*x))+((int ) (( ((unsigned int) (a[i]))- ((unsigned int) ('A')))+10)); + } if (i < higha) { /* avoid dangling else. */ i += 1; if (((a[i] < '0') || (a[i] > '9')) && ((a[i] < 'A') || (a[i] > 'F'))) - ok = FALSE; + { + ok = FALSE; + } } else - ok = FALSE; + { + ok = FALSE; + } } while (! (! ok)); } } @@ -629,28 +712,42 @@ void NumberIO_StrToOctInt (char *a_, unsigned int _a_high, int *x) i = 0; ok = TRUE; while (ok) - if (i < higha) - if ((a[i] < '0') || (a[i] > '7')) - i += 1; + { + if (i < higha) + { + if ((a[i] < '0') || (a[i] > '7')) + { + i += 1; + } + else + { + ok = FALSE; + } + } else - ok = FALSE; - else - ok = FALSE; + { + ok = FALSE; + } + } (*x) = 0; if (i < higha) { ok = TRUE; do { - (*x) = (8*(*x))+((int ) (((unsigned int) (a[i]))-((unsigned int) ('0')))); + (*x) = (8*(*x))+((int ) ( ((unsigned int) (a[i]))- ((unsigned int) ('0')))); if (i < higha) { /* avoid dangling else. */ i += 1; if ((a[i] < '0') || (a[i] > '7')) - ok = FALSE; + { + ok = FALSE; + } } else - ok = FALSE; + { + ok = FALSE; + } } while (! (! ok)); } } --- a/src/gcc/gm2/mc-boot/GPushBackInput.c +++ b/src/gcc/gm2/mc-boot/GPushBackInput.c @@ -200,13 +200,17 @@ char PushBackInput_GetCh (FIO_File f) { StackPtr -= 1; if (Debugging) - StdIO_Write (CharStack.array[StackPtr]); + { + StdIO_Write (CharStack.array[StackPtr]); + } return CharStack.array[StackPtr]; } else { if ((FIO_EOF (f)) || (! (FIO_IsNoError (f)))) - ch = ASCII_nul; + { + ch = ASCII_nul; + } else { do { @@ -218,10 +222,14 @@ char PushBackInput_GetCh (FIO_File f) LineNo += 1; } else - Column += 1; + { + Column += 1; + } } if (Debugging) - StdIO_Write (ch); + { + StdIO_Write (ch); + } return ch; } } @@ -240,7 +248,9 @@ char PushBackInput_PutCh (FIO_File f, char ch) StackPtr += 1; } else - Debug_Halt ((char *) "max push back stack exceeded, increase MaxPushBackStack", 55, 122, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/PushBackInput.mod", 54); + { + Debug_Halt ((char *) "max push back stack exceeded, increase MaxPushBackStack", 55, 122, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/PushBackInput.mod", 54); + } return ch; } @@ -262,7 +272,9 @@ void PushBackInput_PutString (FIO_File f, char *a_, unsigned int _a_high) { l -= 1; if ((PushBackInput_PutCh (f, a[l])) != a[l]) - Debug_Halt ((char *) "assert failed", 13, 104, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/PushBackInput.mod", 54); + { + Debug_Halt ((char *) "assert failed", 13, 104, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/PushBackInput.mod", 54); + } } } @@ -343,7 +355,9 @@ void PushBackInput_WarnString (DynamicStrings_String s) StdIO_Write (':'); } else - StdIO_Write ((*p)); + { + StdIO_Write ((*p)); + } p += 1; } } while (! ((p == NULL) || ((*p) == ASCII_nul))); @@ -388,9 +402,13 @@ void PushBackInput_SetDebug (unsigned int d) unsigned int PushBackInput_GetColumnPosition (void) { if (StackPtr > Column) - return 0; + { + return 0; + } else - return Column-StackPtr; + { + return Column-StackPtr; + } } --- a/src/gcc/gm2/mc-boot/GRTExceptions.c +++ b/src/gcc/gm2/mc-boot/GRTExceptions.c @@ -436,11 +436,17 @@ static Handler findHandler (RTExceptions_EHBlock e, unsigned int number) h = e->handlers->right; while ((h != e->handlers) && (number != h->n)) - h = h->right; + { + h = h->right; + } if (h == e->handlers) - return NULL; + { + return NULL; + } else - return h; + { + return h; + } } @@ -455,9 +461,13 @@ static void InvokeHandler (void) h = findHandler (currentEHB, currentEHB->number); if (h == NULL) - throw (RTExceptions_GetNumber (RTExceptions_GetExceptionBlock ())); + { + throw (RTExceptions_GetNumber (RTExceptions_GetExceptionBlock ())); + } else - (*h->p.proc) (); + { + (*h->p.proc) (); + } } @@ -498,13 +508,17 @@ static void * stripPath (void * s) p = s; f = s; while ((*p) != ASCII_nul) - if ((*p) == '/') - { - p += 1; - f = p; - } - else - p += 1; + { + if ((*p) == '/') + { + p += 1; + f = p; + } + else + { + p += 1; + } + } return f; } @@ -553,7 +567,9 @@ static void addStr (void * s, unsigned int *i) static void addNum (unsigned int n, unsigned int *i) { if (n < 10) - addChar ((char) ((n % 10)+((unsigned int) ('0'))), i); + { + addChar ( ((char) ((n % 10)+ ((unsigned int) ('0')))), i); + } else { addNum (n / 10, i); @@ -571,7 +587,9 @@ static RTExceptions_EHBlock New (void) RTExceptions_EHBlock e; if (freeEHB == NULL) - Storage_ALLOCATE ((void **) &e, sizeof (_T1)); + { + Storage_ALLOCATE ((void **) &e, sizeof (_T1)); + } else { e = freeEHB; @@ -590,7 +608,9 @@ static Handler NewHandler (void) Handler h; if (freeHandler == NULL) - Storage_ALLOCATE ((void **) &h, sizeof (_T3)); + { + Storage_ALLOCATE ((void **) &h, sizeof (_T3)); + } else { h = freeHandler; @@ -669,7 +689,7 @@ static void AddHandler (RTExceptions_EHBlock e, Handler h) static void indexf (void * a) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_indexException), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 597, 9, "indexf", "array index out of bounds"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_indexException)), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 597, 9, "indexf", "array index out of bounds"); } @@ -679,7 +699,7 @@ static void indexf (void * a) static void range (void * a) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_rangeException), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 609, 9, "range", "assignment out of range"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_rangeException)), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 609, 9, "range", "assignment out of range"); } @@ -689,7 +709,7 @@ static void range (void * a) static void casef (void * a) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_caseSelectException), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 621, 9, "casef", "case selector out of range"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_caseSelectException)), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 621, 9, "casef", "case selector out of range"); } @@ -699,7 +719,7 @@ static void casef (void * a) static void invalidloc (void * a) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_invalidLocation), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 633, 9, "invalidloc", "invalid address referenced"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_invalidLocation)), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 633, 9, "invalidloc", "invalid address referenced"); } @@ -709,7 +729,7 @@ static void invalidloc (void * a) static void function (void * a) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_functionException), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 645, 9, "function", "... function ... "); /* --fixme-- what has happened ? */ + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_functionException)), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 645, 9, "function", "... function ... "); /* --fixme-- what has happened ? */ } @@ -719,7 +739,7 @@ static void function (void * a) static void wholevalue (void * a) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_wholeValueException), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 657, 9, "wholevalue", "illegal whole value exception"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_wholeValueException)), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 657, 9, "wholevalue", "illegal whole value exception"); } @@ -729,7 +749,7 @@ static void wholevalue (void * a) static void wholediv (void * a) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_wholeDivException), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 669, 9, "wholediv", "illegal whole value exception"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_wholeDivException)), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 669, 9, "wholediv", "illegal whole value exception"); } @@ -739,7 +759,7 @@ static void wholediv (void * a) static void realvalue (void * a) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_realValueException), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 681, 9, "realvalue", "illegal real value exception"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_realValueException)), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 681, 9, "realvalue", "illegal real value exception"); } @@ -749,7 +769,7 @@ static void realvalue (void * a) static void realdiv (void * a) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_realDivException), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 693, 9, "realdiv", "real number division by zero exception"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_realDivException)), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 693, 9, "realdiv", "real number division by zero exception"); } @@ -759,7 +779,7 @@ static void realdiv (void * a) static void complexvalue (void * a) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_complexValueException), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 705, 9, "complexvalue", "illegal complex value exception"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_complexValueException)), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 705, 9, "complexvalue", "illegal complex value exception"); } @@ -769,7 +789,7 @@ static void complexvalue (void * a) static void complexdiv (void * a) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_complexDivException), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 717, 9, "complexdiv", "complex number division by zero exception"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_complexDivException)), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 717, 9, "complexdiv", "complex number division by zero exception"); } @@ -779,7 +799,7 @@ static void complexdiv (void * a) static void protection (void * a) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_protException), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 729, 9, "protection", "protection exception"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_protException)), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 729, 9, "protection", "protection exception"); } @@ -789,7 +809,7 @@ static void protection (void * a) static void systemf (void * a) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_sysException), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 741, 9, "systemf", "system exception"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_sysException)), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 741, 9, "systemf", "system exception"); } @@ -799,7 +819,7 @@ static void systemf (void * a) static void coroutine (void * a) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_coException), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 753, 9, "coroutine", "coroutine exception"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_coException)), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 753, 9, "coroutine", "coroutine exception"); } @@ -809,7 +829,7 @@ static void coroutine (void * a) static void exception (void * a) { - RTExceptions_Raise ((unsigned int) (M2EXCEPTION_exException), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 765, 9, "exception", "exception exception"); + RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_exException)), "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 765, 9, "exception", "exception exception"); } @@ -839,7 +859,9 @@ static void TidyUp (void) RTExceptions_EHBlock e; if (currentEHB != NULL) - currentEHB = RTExceptions_KillExceptionBlock (currentEHB); + { + currentEHB = RTExceptions_KillExceptionBlock (currentEHB); + } while (freeHandler != NULL) { f = freeHandler; @@ -978,7 +1000,9 @@ void RTExceptions_PushHandler (RTExceptions_EHBlock e, unsigned int number, RTEx h = findHandler (e, number); if (h == NULL) - i = InitHandler (NewHandler (), (Handler) NULL, (Handler) NULL, (Handler) NULL, number, p); + { + i = InitHandler (NewHandler (), (Handler) NULL, (Handler) NULL, (Handler) NULL, number, p); + } else { /* remove, h, */ @@ -1007,7 +1031,9 @@ void RTExceptions_PopHandler (RTExceptions_EHBlock e, unsigned int number) /* remove, h, */ SubHandler (h); if (h->stack != NULL) - AddHandler (e, h->stack); + { + AddHandler (e, h->stack); + } h = KillHandler (h); } } @@ -1043,7 +1069,9 @@ void RTExceptions_BaseExceptionsThrow (void) M2EXCEPTION_M2Exceptions i; for (i=M2EXCEPTION_indexException; i<=M2EXCEPTION_exException; i++) - RTExceptions_PushHandler (RTExceptions_GetExceptionBlock (), (unsigned int ) (i), (RTExceptions_ProcedureHandler) {(RTExceptions_ProcedureHandler_t) DoThrow}); + { + RTExceptions_PushHandler (RTExceptions_GetExceptionBlock (), (unsigned int ) (i), (RTExceptions_ProcedureHandler) {(RTExceptions_ProcedureHandler_t) DoThrow}); + } } @@ -1095,9 +1123,13 @@ void RTExceptions_SwitchExceptionState (unsigned int *from, unsigned int to) RTExceptions_EHBlock RTExceptions_GetBaseExceptionBlock (void) { if (currentEHB == NULL) - M2RTS_Halt ((char *) "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 53, 583, (char *) "GetBaseExceptionBlock", 21, (char *) "currentEHB has not been initialized yet", 39); + { + M2RTS_Halt ((char *) "../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.mod", 53, 583, (char *) "GetBaseExceptionBlock", 21, (char *) "currentEHB has not been initialized yet", 39); + } else - return currentEHB; + { + return currentEHB; + } ReturnException ("../../gcc-versionno/gcc/gm2/gm2-libs/RTExceptions.def", 19, 1); } --- a/src/gcc/gm2/mc-boot/GRTint.c +++ b/src/gcc/gm2/mc-boot/GRTint.c @@ -223,9 +223,13 @@ static void Init (void); static int Max (int i, int j) { if (i > j) - return i; + { + return i; + } else - return j; + { + return j; + } } static int Min (int i, int j) @@ -234,9 +238,13 @@ static int Min (int i, int j) Max - returns the minimum: i or j. */ if (i < j) - return i; + { + return i; + } else - return j; + { + return j; + } } @@ -253,7 +261,9 @@ static Vector FindVector (int fd, VectorType t) while (v != NULL) { if ((v->type == t) && (v->File == fd)) - return v; + { + return v; + } v = v->exists; } return NULL; @@ -270,7 +280,9 @@ static Vector FindVectorNo (unsigned int vec) v = Exists; while ((v != NULL) && (v->no != vec)) - v = v->exists; + { + v = v->exists; + } return v; } @@ -288,9 +300,13 @@ static Vector FindPendingVector (unsigned int vec) { v = Pending.array[i-(COROUTINES_UnassignedPriority)]; while ((v != NULL) && (v->no != vec)) - v = v->pending; + { + v = v->pending; + } if ((v != NULL) && (v->no == vec)) - return v; + { + return v; + } } return NULL; } @@ -332,9 +348,12 @@ static void DumpPendingQueue (void) while (v != NULL) { if ((v->type == input) || (v->type == output)) - libc_printf ((char *) "(fd=%d) (vec=%d)", 16, v->File, v->no); + { + libc_printf ((char *) "(fd=%d) (vec=%d)", 16, v->File, v->no); + } else if (v->type == time) { + /* avoid dangling else. */ Selective_GetTime (v->rel, &s, &m); Assertion_Assert (m < Microseconds); libc_printf ((char *) "time (%d.%6d secs)\\n", 20, s, m); @@ -449,7 +468,9 @@ static void Init (void) Exists = NULL; for (p=COROUTINES_UnassignedPriority; p<=7; p++) - Pending.array[p-(COROUTINES_UnassignedPriority)] = NULL; + { + Pending.array[p-(COROUTINES_UnassignedPriority)] = NULL; + } } @@ -463,7 +484,9 @@ unsigned int RTint_InitInputVector (int fd, unsigned int pri) Vector v; if (Debugging) - libc_printf ((char *) "InitInputVector fd = %d priority = %d\\n", 39, fd, pri); + { + libc_printf ((char *) "InitInputVector fd = %d priority = %d\\n", 39, fd, pri); + } v = FindVector (fd, (VectorType) input); if (v == NULL) { @@ -480,7 +503,9 @@ unsigned int RTint_InitInputVector (int fd, unsigned int pri) return VecNo; } else - return v->no; + { + return v->no; + } } @@ -509,7 +534,9 @@ unsigned int RTint_InitOutputVector (int fd, unsigned int pri) return VecNo; } else - return v->no; + { + return v->no; + } } @@ -551,9 +578,13 @@ void RTint_ReArmTimeVector (unsigned int vec, unsigned int micro, unsigned int s Assertion_Assert (micro < Microseconds); v = FindVectorNo (vec); if (v == NULL) - M2RTS_Halt ((char *) "../../gcc-versionno/gcc/gm2/gm2-libs/RTint.mod", 46, 256, (char *) "ReArmTimeVector", 15, (char *) "cannot find vector supplied", 27); + { + M2RTS_Halt ((char *) "../../gcc-versionno/gcc/gm2/gm2-libs/RTint.mod", 46, 256, (char *) "ReArmTimeVector", 15, (char *) "cannot find vector supplied", 27); + } else - Selective_SetTime (v->rel, secs+DebugTime, micro); + { + Selective_SetTime (v->rel, secs+DebugTime, micro); + } } @@ -570,7 +601,9 @@ void RTint_GetTimeVector (unsigned int vec, unsigned int *micro, unsigned int *s v = FindVectorNo (vec); if (v == NULL) - M2RTS_Halt ((char *) "../../gcc-versionno/gcc/gm2/gm2-libs/RTint.mod", 46, 280, (char *) "GetTimeVector", 13, (char *) "cannot find vector supplied", 27); + { + M2RTS_Halt ((char *) "../../gcc-versionno/gcc/gm2/gm2-libs/RTint.mod", 46, 280, (char *) "GetTimeVector", 13, (char *) "cannot find vector supplied", 27); + } else { Selective_GetTime (v->rel, secs, micro); @@ -592,7 +625,9 @@ void * RTint_AttachVector (unsigned int vec, void * p) v = FindVectorNo (vec); if (v == NULL) - M2RTS_Halt ((char *) "../../gcc-versionno/gcc/gm2/gm2-libs/RTint.mod", 46, 305, (char *) "AttachVector", 12, (char *) "cannot find vector supplied", 27); + { + M2RTS_Halt ((char *) "../../gcc-versionno/gcc/gm2/gm2-libs/RTint.mod", 46, 305, (char *) "AttachVector", 12, (char *) "cannot find vector supplied", 27); + } else { l = v->arg; @@ -621,7 +656,9 @@ void RTint_IncludeVector (unsigned int vec) /* avoid dangling else. */ v = FindVectorNo (vec); if (v == NULL) - M2RTS_Halt ((char *) "../../gcc-versionno/gcc/gm2/gm2-libs/RTint.mod", 46, 331, (char *) "IncludeVector", 13, (char *) "cannot find vector supplied", 27); + { + M2RTS_Halt ((char *) "../../gcc-versionno/gcc/gm2/gm2-libs/RTint.mod", 46, 331, (char *) "IncludeVector", 13, (char *) "cannot find vector supplied", 27); + } else { /* printf('including vector %d (fd = %d) @@ -644,7 +681,9 @@ void RTint_IncludeVector (unsigned int vec) else { if (Debugging) - libc_printf ((char *) "odd vector %d (fd %d) is already attached to the pending queue\\n", 64, vec, v->File); + { + libc_printf ((char *) "odd vector %d (fd %d) is already attached to the pending queue\\n", 64, vec, v->File); + } stop (); } } @@ -662,22 +701,30 @@ void RTint_ExcludeVector (unsigned int vec) v = FindPendingVector (vec); if (v == NULL) - M2RTS_Halt ((char *) "../../gcc-versionno/gcc/gm2/gm2-libs/RTint.mod", 46, 372, (char *) "ExcludeVector", 13, (char *) "cannot find pending vector supplied", 35); + { + M2RTS_Halt ((char *) "../../gcc-versionno/gcc/gm2/gm2-libs/RTint.mod", 46, 372, (char *) "ExcludeVector", 13, (char *) "cannot find pending vector supplied", 35); + } else { /* printf('excluding vector %d ', vec) ; */ if (Pending.array[v->priority-(COROUTINES_UnassignedPriority)] == v) - Pending.array[v->priority-(COROUTINES_UnassignedPriority)] = Pending.array[v->priority-(COROUTINES_UnassignedPriority)]->pending; + { + Pending.array[v->priority-(COROUTINES_UnassignedPriority)] = Pending.array[v->priority-(COROUTINES_UnassignedPriority)]->pending; + } else { u = Pending.array[v->priority-(COROUTINES_UnassignedPriority)]; while (u->pending != v) - u = u->pending; + { + u = u->pending; + } u->pending = v->pending; } if (v->type == time) - v->queued = FALSE; + { + v->queued = FALSE; + } } } @@ -713,7 +760,9 @@ void RTint_Listen (unsigned int untilInterrupt, RTint_DespatchVector call, unsig if (pri < (7)) { if (Debugging) - DumpPendingQueue (); + { + DumpPendingQueue (); + } maxFd = -1; t = NULL; i = NULL; @@ -742,7 +791,9 @@ void RTint_Listen (unsigned int untilInterrupt, RTint_DespatchVector call, unsig Selective_GetTime (v->abs_, &s, &m); Assertion_Assert (m < Microseconds); if (Debugging) - libc_printf ((char *) "shortest delay is %d.%d\\n", 25, s, m); + { + libc_printf ((char *) "shortest delay is %d.%d\\n", 25, s, m); + } Selective_SetTime (t, s, m); found = TRUE; } @@ -757,9 +808,13 @@ void RTint_Listen (unsigned int untilInterrupt, RTint_DespatchVector call, unsig p -= 1; } if (! untilInterrupt) - Selective_SetTime (t, 0, 0); + { + Selective_SetTime (t, 0, 0); + } if (((untilInterrupt && (i == NULL)) && (o == NULL)) && ! found) - M2RTS_Halt ((char *) "../../gcc-versionno/gcc/gm2/gm2-libs/RTint.mod", 46, 592, (char *) "Listen", 6, (char *) "deadlock found, no more processes to run and no interrupts active", 65); + { + M2RTS_Halt ((char *) "../../gcc-versionno/gcc/gm2/gm2-libs/RTint.mod", 46, 592, (char *) "Listen", 6, (char *) "deadlock found, no more processes to run and no interrupts active", 65); + } /* printf('} ') ; */ if (((! found && (maxFd == -1)) && (i == NULL)) && (o == NULL)) @@ -778,7 +833,9 @@ void RTint_Listen (unsigned int untilInterrupt, RTint_DespatchVector call, unsig SubTime (&s, &m, t, b4); Selective_SetTime (t, s, m); if (Debugging) - libc_printf ((char *) "select waiting for %u.%u seconds\\n", 34, s, m); + { + libc_printf ((char *) "select waiting for %u.%u seconds\\n", 34, s, m); + } do { r = pth_pth_select (maxFd+1, (void *) i, (void *) o, NULL, (void *) t); if (r == -1) @@ -786,15 +843,23 @@ void RTint_Listen (unsigned int untilInterrupt, RTint_DespatchVector call, unsig libc_perror ((char *) "pth_select", 10); r = pth_pth_select (maxFd+1, (void *) i, (void *) o, NULL, NULL); if (r == -1) - libc_perror ((char *) "pth_select timeout argument is faulty", 37); + { + libc_perror ((char *) "pth_select timeout argument is faulty", 37); + } r = pth_pth_select (maxFd+1, (void *) i, NULL, NULL, (void *) t); if (r == -1) - libc_perror ((char *) "pth_select output fd argument is faulty", 39); + { + libc_perror ((char *) "pth_select output fd argument is faulty", 39); + } r = pth_pth_select (maxFd+1, NULL, (void *) o, NULL, (void *) t); if (r == -1) - libc_perror ((char *) "pth_select input fd argument is faulty", 38); + { + libc_perror ((char *) "pth_select input fd argument is faulty", 38); + } else - libc_perror ((char *) "pth_select maxFD+1 argument is faulty", 37); + { + libc_perror ((char *) "pth_select maxFD+1 argument is faulty", 37); + } } } while (! (r != -1)); } @@ -855,7 +920,10 @@ void RTint_Listen (unsigned int untilInterrupt, RTint_DespatchVector call, unsig (*call.proc) (v->no, v->priority, v->arg); } else if (Debugging) - libc_printf ((char *) "must wait longer as time has not expired\\n", 42); + { + /* avoid dangling else. */ + libc_printf ((char *) "must wait longer as time has not expired\\n", 42); + } } break; @@ -868,15 +936,25 @@ void RTint_Listen (unsigned int untilInterrupt, RTint_DespatchVector call, unsig p -= 1; } if (t != NULL) - t = Selective_KillTime (t); + { + t = Selective_KillTime (t); + } if (b4 != NULL) - t = Selective_KillTime (b4); + { + t = Selective_KillTime (b4); + } if (after != NULL) - t = Selective_KillTime (after); + { + t = Selective_KillTime (after); + } if (i != NULL) - i = Selective_KillSet (i); + { + i = Selective_KillSet (i); + } if (o != NULL) - o = Selective_KillSet (o); + { + o = Selective_KillSet (o); + } } } --- a/src/gcc/gm2/mc-boot/GSArgs.c +++ b/src/gcc/gm2/mc-boot/GSArgs.c @@ -72,7 +72,7 @@ unsigned int SArgs_GetArg (DynamicStrings_String *s, unsigned int i) if (i < UnixArgs_ArgC) { - ppc = (void *) (UnixArgs_ArgV+(i*(sizeof (PtrToChar)))); + ppc = (void *) (UnixArgs_ArgV+(i*sizeof (PtrToChar))); (*s) = DynamicStrings_InitStringCharStar ((void *) (*ppc)); return TRUE; } --- a/src/gcc/gm2/mc-boot/GSFIO.c +++ b/src/gcc/gm2/mc-boot/GSFIO.c @@ -146,7 +146,9 @@ DynamicStrings_String SFIO_WriteS (FIO_File file, DynamicStrings_String s) unsigned int nBytes; if (s != NULL) - nBytes = FIO_WriteNBytes (file, DynamicStrings_Length (s), DynamicStrings_string (s)); + { + nBytes = FIO_WriteNBytes (file, DynamicStrings_Length (s), DynamicStrings_string (s)); + } return s; } @@ -165,11 +167,15 @@ DynamicStrings_String SFIO_ReadS (FIO_File file) s = DynamicStrings_InitString ((char *) "", 0); while (((! (FIO_EOLN (file))) && (! (FIO_EOF (file)))) && (FIO_IsNoError (file))) - s = DynamicStrings_ConCatChar (s, FIO_ReadChar (file)); + { + s = DynamicStrings_ConCatChar (s, FIO_ReadChar (file)); + } if (FIO_EOLN (file)) - /* consume nl */ - if ((FIO_ReadChar (file)) == ASCII_nul) - {} /* empty. */ + { + /* consume nl */ + if ((FIO_ReadChar (file)) == ASCII_nul) + {} /* empty. */ + } return s; } --- a/src/gcc/gm2/mc-boot/GStdIO.c +++ b/src/gcc/gm2/mc-boot/GStdIO.c @@ -134,7 +134,9 @@ void StdIO_Write (char ch) void StdIO_PushOutput (StdIO_ProcWrite p) { if (StackWPtr == MaxStack) - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } else { StackWPtr += 1; @@ -150,9 +152,13 @@ void StdIO_PushOutput (StdIO_ProcWrite p) void StdIO_PopOutput (void) { if (StackWPtr == 1) - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } else - StackWPtr -= 1; + { + StackWPtr -= 1; + } } @@ -163,9 +169,13 @@ void StdIO_PopOutput (void) StdIO_ProcWrite StdIO_GetCurrentOutput (void) { if (StackWPtr > 0) - return StackW.array[StackWPtr]; + { + return StackW.array[StackWPtr]; + } else - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } } @@ -178,7 +188,9 @@ StdIO_ProcWrite StdIO_GetCurrentOutput (void) void StdIO_PushInput (StdIO_ProcRead p) { if (StackRPtr == MaxStack) - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } else { StackRPtr += 1; @@ -194,9 +206,13 @@ void StdIO_PushInput (StdIO_ProcRead p) void StdIO_PopInput (void) { if (StackRPtr == 1) - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } else - StackRPtr -= 1; + { + StackRPtr -= 1; + } } @@ -207,9 +223,13 @@ void StdIO_PopInput (void) StdIO_ProcRead StdIO_GetCurrentInput (void) { if (StackRPtr > 0) - return StackR.array[StackRPtr]; + { + return StackR.array[StackRPtr]; + } else - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } } void _M2_StdIO_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[]) --- a/src/gcc/gm2/mc-boot/GStrCase.c +++ b/src/gcc/gm2/mc-boot/GStrCase.c @@ -84,7 +84,9 @@ void StrCase_StrToUpperCase (char *a_, unsigned int _a_high, char *b, unsigned i i += 1; } if (i < highb) - b[i] = ASCII_nul; + { + b[i] = ASCII_nul; + } } @@ -112,7 +114,9 @@ void StrCase_StrToLowerCase (char *a_, unsigned int _a_high, char *b, unsigned i i += 1; } if (i < highb) - b[i] = ASCII_nul; + { + b[i] = ASCII_nul; + } } @@ -125,7 +129,9 @@ void StrCase_StrToLowerCase (char *a_, unsigned int _a_high, char *b, unsigned i char StrCase_Cap (char ch) { if ((ch >= 'a') && (ch <= 'z')) - ch = (char) ((((unsigned int) (ch))-((unsigned int) ('a')))+((unsigned int) ('A'))); + { + ch = ((char) (( ((unsigned int) (ch))- ((unsigned int) ('a')))+ ((unsigned int) ('A')))); + } return ch; } @@ -139,7 +145,9 @@ char StrCase_Cap (char ch) char StrCase_Lower (char ch) { if ((ch >= 'A') && (ch <= 'Z')) - ch = (char) ((((unsigned int) (ch))-((unsigned int) ('A')))+((unsigned int) ('a'))); + { + ch = ((char) (( ((unsigned int) (ch))- ((unsigned int) ('A')))+ ((unsigned int) ('a')))); + } return ch; } --- a/src/gcc/gm2/mc-boot/GStrIO.c +++ b/src/gcc/gm2/mc-boot/GStrIO.c @@ -98,7 +98,9 @@ static void Erase (void) static void Echo (char ch) { if (IsATTY) - StdIO_Write (ch); + { + StdIO_Write (ch); + } } @@ -141,32 +143,48 @@ void StrIO_ReadString (char *a, unsigned int _a_high) do { StdIO_Read (&ch); if ((ch == ASCII_del) || (ch == ASCII_bs)) - if (n == 0) - StdIO_Write (ASCII_bel); - else - { - Erase (); - n -= 1; - } + { + if (n == 0) + { + StdIO_Write (ASCII_bel); + } + else + { + Erase (); + n -= 1; + } + } else if (ch == ASCII_nak) - while (n > 0) - { - Erase (); - n -= 1; - } + { + /* avoid dangling else. */ + while (n > 0) + { + Erase (); + n -= 1; + } + } else if (ch == ASCII_etb) - if (n == 0) - Echo (ASCII_bel); - else if (AlphaNum (a[n-1])) - do { - Erase (); - n -= 1; - } while (! ((n == 0) || (! (AlphaNum (a[n-1]))))); - else - { - Erase (); - n -= 1; - } + { + /* avoid dangling else. */ + if (n == 0) + { + Echo (ASCII_bel); + } + else if (AlphaNum (a[n-1])) + { + /* avoid dangling else. */ + do { + Erase (); + n -= 1; + } while (! ((n == 0) || (! (AlphaNum (a[n-1]))))); + } + else + { + /* avoid dangling else. */ + Erase (); + n -= 1; + } + } else if (n <= high) { /* avoid dangling else. */ @@ -177,28 +195,38 @@ void StrIO_ReadString (char *a, unsigned int _a_high) } else if (ch == ASCII_ff) { + /* avoid dangling else. */ a[0] = ch; if (high > 0) - a[1] = ASCII_nul; + { + a[1] = ASCII_nul; + } ch = ASCII_cr; } else if (ch >= ' ') { + /* avoid dangling else. */ Echo (ch); a[n] = ch; n += 1; } else if (ch == ASCII_eof) { + /* avoid dangling else. */ a[n] = ch; n += 1; ch = ASCII_cr; if (n <= high) - a[n] = ASCII_nul; + { + a[n] = ASCII_nul; + } } } else if (ch != ASCII_cr) - Echo (ASCII_bel); + { + /* avoid dangling else. */ + Echo (ASCII_bel); + } } while (! ((ch == ASCII_cr) || (ch == ASCII_lf))); } --- a/src/gcc/gm2/mc-boot/GStrLib.c +++ b/src/gcc/gm2/mc-boot/GStrLib.c @@ -111,7 +111,9 @@ void StrLib_StrConCat (char *a_, unsigned int _a_high, char *b_, unsigned int _b j += 1; } if (i <= Highc) - c[i] = ASCII_nul; + { + c[i] = ASCII_nul; + } } @@ -138,9 +140,14 @@ unsigned int StrLib_StrLess (char *a_, unsigned int _a_high, char *b_, unsigned while ((i < Higha) && (i < Highb)) { if (a[i] < b[i]) - return TRUE; + { + return TRUE; + } else if (a[i] > b[i]) - return FALSE; + { + /* avoid dangling else. */ + return FALSE; + } /* must be equal, move on to next character */ i += 1; } @@ -165,7 +172,9 @@ unsigned int StrLib_StrEqual (char *a_, unsigned int _a_high, char *b_, unsigned while ((((i <= higha) && (i <= highb)) && (a[i] != ASCII_nul)) && (b[i] != ASCII_nul)) { if (a[i] != b[i]) - return FALSE; + { + return FALSE; + } i += 1; } return ! (((i <= higha) && (a[i] != ASCII_nul)) || ((i <= highb) && (b[i] != ASCII_nul))); @@ -183,7 +192,9 @@ unsigned int StrLib_StrLen (char *a_, unsigned int _a_high) Len = 0; High = _a_high; while ((Len <= High) && (a[Len] != ASCII_nul)) - Len += 1; + { + Len += 1; + } return Len; } @@ -206,7 +217,9 @@ void StrLib_StrCopy (char *a_, unsigned int _a_high, char *b, unsigned int _b_hi n += 1; } if (n <= Highb) - b[n] = ASCII_nul; + { + b[n] = ASCII_nul; + } } @@ -231,16 +244,24 @@ unsigned int StrLib_IsSubString (char *a_, unsigned int _a_high, char *b_, unsig LengthB = StrLib_StrLen ((char *) b, _b_high); i = 0; if (LengthA > LengthB) - while (i <= (LengthA-LengthB)) - { - j = 0; - while ((j < LengthB) && (a[i+j] == b[j])) - j += 1; - if (j == LengthB) - return TRUE; - else - i += 1; - } + { + while (i <= (LengthA-LengthB)) + { + j = 0; + while ((j < LengthB) && (a[i+j] == b[j])) + { + j += 1; + } + if (j == LengthB) + { + return TRUE; + } + else + { + i += 1; + } + } + } return FALSE; } @@ -266,7 +287,9 @@ void StrLib_StrRemoveWhitePrefix (char *a_, unsigned int _a_high, char *b, unsig higha = StrLib_StrLen ((char *) a, _a_high); highb = _b_high; while ((i < higha) && (IsWhite (a[i]))) - i += 1; + { + i += 1; + } while ((i < higha) && (j <= highb)) { b[j] = a[i]; @@ -274,7 +297,9 @@ void StrLib_StrRemoveWhitePrefix (char *a_, unsigned int _a_high, char *b, unsig j += 1; } if (j <= highb) - b[j] = ASCII_nul; + { + b[j] = ASCII_nul; + } } void _M2_StrLib_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[]) --- a/src/gcc/gm2/mc-boot/GStringConvert.c +++ b/src/gcc/gm2/mc-boot/GStringConvert.c @@ -438,7 +438,9 @@ static void Assert (unsigned int b, char *file_, unsigned int _file_high, unsign memcpy (func, func_, _func_high+1); if (! b) - M2RTS_ErrorMessage ((char *) "assert failed", 13, (char *) file, _file_high, line, (char *) func, _func_high); + { + M2RTS_ErrorMessage ((char *) "assert failed", 13, (char *) file, _file_high, line, (char *) func, _func_high); + } } @@ -449,9 +451,13 @@ static void Assert (unsigned int b, char *file_, unsigned int _file_high, unsign static unsigned int Max (unsigned int a, unsigned int b) { if (a > b) - return a; + { + return a; + } else - return b; + { + return b; + } } @@ -462,9 +468,13 @@ static unsigned int Max (unsigned int a, unsigned int b) static unsigned int Min (unsigned int a, unsigned int b) { if (a < b) - return a; + { + return a; + } else - return b; + { + return b; + } } @@ -475,9 +485,13 @@ static unsigned int Min (unsigned int a, unsigned int b) static long unsigned int LongMin (long unsigned int a, long unsigned int b) { if (a < b) - return a; + { + return a; + } else - return b; + { + return b; + } } @@ -498,13 +512,15 @@ static unsigned int IsDigit (char ch) static unsigned int IsDecimalDigitValid (char ch, unsigned int base, unsigned int *c) { - if ((IsDigit (ch)) && ((((unsigned int) (ch))-((unsigned int) ('0'))) < base)) + if ((IsDigit (ch)) && (( ((unsigned int) (ch))- ((unsigned int) ('0'))) < base)) { - (*c) = ((*c)*base)+(((unsigned int) (ch))-((unsigned int) ('0'))); + (*c) = ((*c)*base)+( ((unsigned int) (ch))- ((unsigned int) ('0'))); return TRUE; } else - return FALSE; + { + return FALSE; + } } @@ -515,18 +531,22 @@ static unsigned int IsDecimalDigitValid (char ch, unsigned int base, unsigned in static unsigned int IsHexidecimalDigitValid (char ch, unsigned int base, unsigned int *c) { - if (((ch >= 'a') && (ch <= 'f')) && (((((unsigned int) (ch))-((unsigned int) ('a')))+10) < base)) + if (((ch >= 'a') && (ch <= 'f')) && ((( ((unsigned int) (ch))- ((unsigned int) ('a')))+10) < base)) { - (*c) = ((*c)*base)+((((unsigned int) (ch))-((unsigned int) ('a')))+10); + (*c) = ((*c)*base)+(( ((unsigned int) (ch))- ((unsigned int) ('a')))+10); return TRUE; } - else if (((ch >= 'A') && (ch <= 'F')) && (((((unsigned int) (ch))-((unsigned int) ('F')))+10) < base)) + else if (((ch >= 'A') && (ch <= 'F')) && ((( ((unsigned int) (ch))- ((unsigned int) ('F')))+10) < base)) { - (*c) = ((*c)*base)+((((unsigned int) (ch))-((unsigned int) ('A')))+10); + /* avoid dangling else. */ + (*c) = ((*c)*base)+(( ((unsigned int) (ch))- ((unsigned int) ('A')))+10); return TRUE; } else - return FALSE; + { + /* avoid dangling else. */ + return FALSE; + } } @@ -537,13 +557,15 @@ static unsigned int IsHexidecimalDigitValid (char ch, unsigned int base, unsigne static unsigned int IsDecimalDigitValidLong (char ch, unsigned int base, long unsigned int *c) { - if ((IsDigit (ch)) && ((((unsigned int) (ch))-((unsigned int) ('0'))) < base)) + if ((IsDigit (ch)) && (( ((unsigned int) (ch))- ((unsigned int) ('0'))) < base)) { - (*c) = (*c)*((long unsigned int ) (base+(((unsigned int) (ch))-((unsigned int) ('0'))))); + (*c) = (*c)*((long unsigned int ) (base+( ((unsigned int) (ch))- ((unsigned int) ('0'))))); return TRUE; } else - return FALSE; + { + return FALSE; + } } @@ -554,18 +576,22 @@ static unsigned int IsDecimalDigitValidLong (char ch, unsigned int base, long un static unsigned int IsHexidecimalDigitValidLong (char ch, unsigned int base, long unsigned int *c) { - if (((ch >= 'a') && (ch <= 'f')) && (((((unsigned int) (ch))-((unsigned int) ('a')))+10) < base)) + if (((ch >= 'a') && (ch <= 'f')) && ((( ((unsigned int) (ch))- ((unsigned int) ('a')))+10) < base)) { - (*c) = (*c)*((long unsigned int ) (base+((((unsigned int) (ch))-((unsigned int) ('a')))+10))); + (*c) = (*c)*((long unsigned int ) (base+(( ((unsigned int) (ch))- ((unsigned int) ('a')))+10))); return TRUE; } - else if (((ch >= 'A') && (ch <= 'F')) && (((((unsigned int) (ch))-((unsigned int) ('F')))+10) < base)) + else if (((ch >= 'A') && (ch <= 'F')) && ((( ((unsigned int) (ch))- ((unsigned int) ('F')))+10) < base)) { - (*c) = (*c)*((long unsigned int ) (base+((((unsigned int) (ch))-((unsigned int) ('A')))+10))); + /* avoid dangling else. */ + (*c) = (*c)*((long unsigned int ) (base+(( ((unsigned int) (ch))- ((unsigned int) ('A')))+10))); return TRUE; } else - return FALSE; + { + /* avoid dangling else. */ + return FALSE; + } } @@ -576,13 +602,15 @@ static unsigned int IsHexidecimalDigitValidLong (char ch, unsigned int base, lon static unsigned int IsDecimalDigitValidShort (char ch, unsigned int base, short unsigned int *c) { - if ((IsDigit (ch)) && ((((unsigned int) (ch))-((unsigned int) ('0'))) < base)) + if ((IsDigit (ch)) && (( ((unsigned int) (ch))- ((unsigned int) ('0'))) < base)) { - (*c) = (*c)*((short unsigned int ) (base+(((unsigned int) (ch))-((unsigned int) ('0'))))); + (*c) = (*c)*((short unsigned int ) (base+( ((unsigned int) (ch))- ((unsigned int) ('0'))))); return TRUE; } else - return FALSE; + { + return FALSE; + } } @@ -593,18 +621,22 @@ static unsigned int IsDecimalDigitValidShort (char ch, unsigned int base, short static unsigned int IsHexidecimalDigitValidShort (char ch, unsigned int base, short unsigned int *c) { - if (((ch >= 'a') && (ch <= 'f')) && (((((unsigned int) (ch))-((unsigned int) ('a')))+10) < base)) + if (((ch >= 'a') && (ch <= 'f')) && ((( ((unsigned int) (ch))- ((unsigned int) ('a')))+10) < base)) { - (*c) = (*c)*((short unsigned int ) (base+((((unsigned int) (ch))-((unsigned int) ('a')))+10))); + (*c) = (*c)*((short unsigned int ) (base+(( ((unsigned int) (ch))- ((unsigned int) ('a')))+10))); return TRUE; } - else if (((ch >= 'A') && (ch <= 'F')) && (((((unsigned int) (ch))-((unsigned int) ('F')))+10) < base)) + else if (((ch >= 'A') && (ch <= 'F')) && ((( ((unsigned int) (ch))- ((unsigned int) ('F')))+10) < base)) { - (*c) = (*c)*((short unsigned int ) (base+((((unsigned int) (ch))-((unsigned int) ('A')))+10))); + /* avoid dangling else. */ + (*c) = (*c)*((short unsigned int ) (base+(( ((unsigned int) (ch))- ((unsigned int) ('A')))+10))); return TRUE; } else - return FALSE; + { + /* avoid dangling else. */ + return FALSE; + } } @@ -618,17 +650,21 @@ static long double ToThePower10 (long double v, int power) i = 0; if (power > 0) - while (i < power) - { - v = v*10.0; - i += 1; - } + { + while (i < power) + { + v = v*10.0; + i += 1; + } + } else - while (i > power) - { - v = v/10.0; - i -= 1; - } + { + while (i > power) + { + v = v/10.0; + i -= 1; + } + } return v; } @@ -700,18 +736,28 @@ static DynamicStrings_String doDecimalPlaces (DynamicStrings_String s, unsigned /* remove '.' */ point = DynamicStrings_Index (s, '.', 0); if (point == 0) - s = DynamicStrings_Slice (DynamicStrings_Mark (s), 1, 0); + { + s = DynamicStrings_Slice (DynamicStrings_Mark (s), 1, 0); + } else if (point < l) - s = DynamicStrings_ConCat (DynamicStrings_Slice (DynamicStrings_Mark (s), 0, point), DynamicStrings_Mark (DynamicStrings_Slice (DynamicStrings_Mark (s), point+1, 0))); + { + /* avoid dangling else. */ + s = DynamicStrings_ConCat (DynamicStrings_Slice (DynamicStrings_Mark (s), 0, point), DynamicStrings_Mark (DynamicStrings_Slice (DynamicStrings_Mark (s), point+1, 0))); + } else - s = DynamicStrings_Slice (DynamicStrings_Mark (s), 0, point); + { + /* avoid dangling else. */ + s = DynamicStrings_Slice (DynamicStrings_Mark (s), 0, point); + } l = DynamicStrings_Length (s); i = 0; if (l > 0) { /* skip over leading zeros */ while ((i < l) && ((DynamicStrings_char (s, i)) == '0')) - i += 1; + { + i += 1; + } /* was the string full of zeros? */ if ((i == l) && ((DynamicStrings_char (s, i-1)) == '0')) { @@ -736,16 +782,21 @@ static DynamicStrings_String doDecimalPlaces (DynamicStrings_String s, unsigned hundreths = DynamicStrings_Slice (DynamicStrings_Mark (s), i+1, i+3); s = t; if ((StringConvert_stoc (hundreths)) >= 50) - s = carryOne (DynamicStrings_Mark (s), (unsigned int) i); + { + s = carryOne (DynamicStrings_Mark (s), (unsigned int) i); + } hundreths = DynamicStrings_KillString (hundreths); } else if ((i+2) <= l) { + /* avoid dangling else. */ t = DynamicStrings_Dup (s); tenths = DynamicStrings_Slice (DynamicStrings_Mark (s), i+1, i+2); s = t; if ((StringConvert_stoc (tenths)) >= 5) - s = carryOne (DynamicStrings_Mark (s), (unsigned int) i); + { + s = carryOne (DynamicStrings_Mark (s), (unsigned int) i); + } tenths = DynamicStrings_KillString (tenths); } /* check whether we need to remove the leading zero */ @@ -760,16 +811,22 @@ static DynamicStrings_String doDecimalPlaces (DynamicStrings_String s, unsigned s = DynamicStrings_Slice (DynamicStrings_Mark (s), 0, i); l = DynamicStrings_Length (s); if (l < point) - s = DynamicStrings_ConCat (s, DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitStringChar ('0')), (unsigned int) point-l)); + { + s = DynamicStrings_ConCat (s, DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitStringChar ('0')), (unsigned int) point-l)); + } } /* re-insert the point */ if (point >= 0) { /* avoid gcc warning by using compound statement even if not strictly necessary. */ if (point == 0) - s = DynamicStrings_ConCat (DynamicStrings_InitStringChar ('.'), DynamicStrings_Mark (s)); + { + s = DynamicStrings_ConCat (DynamicStrings_InitStringChar ('.'), DynamicStrings_Mark (s)); + } else - s = DynamicStrings_ConCat (DynamicStrings_ConCatChar (DynamicStrings_Slice (DynamicStrings_Mark (s), 0, point), '.'), DynamicStrings_Mark (DynamicStrings_Slice (DynamicStrings_Mark (s), point, 0))); + { + s = DynamicStrings_ConCat (DynamicStrings_ConCatChar (DynamicStrings_Slice (DynamicStrings_Mark (s), 0, point), '.'), DynamicStrings_Mark (DynamicStrings_Slice (DynamicStrings_Mark (s), point, 0))); + } } return s; } @@ -796,21 +853,35 @@ static DynamicStrings_String doSigFig (DynamicStrings_String s, unsigned int n) /* remove '.' */ point = DynamicStrings_Index (s, '.', 0); if (point >= 0) - if (point == 0) - s = DynamicStrings_Slice (DynamicStrings_Mark (s), 1, 0); - else if (point < l) - s = DynamicStrings_ConCat (DynamicStrings_Slice (DynamicStrings_Mark (s), 0, point), DynamicStrings_Mark (DynamicStrings_Slice (DynamicStrings_Mark (s), point+1, 0))); - else - s = DynamicStrings_Slice (DynamicStrings_Mark (s), 0, point); + { + if (point == 0) + { + s = DynamicStrings_Slice (DynamicStrings_Mark (s), 1, 0); + } + else if (point < l) + { + /* avoid dangling else. */ + s = DynamicStrings_ConCat (DynamicStrings_Slice (DynamicStrings_Mark (s), 0, point), DynamicStrings_Mark (DynamicStrings_Slice (DynamicStrings_Mark (s), point+1, 0))); + } + else + { + /* avoid dangling else. */ + s = DynamicStrings_Slice (DynamicStrings_Mark (s), 0, point); + } + } else - s = DynamicStrings_Dup (DynamicStrings_Mark (s)); + { + s = DynamicStrings_Dup (DynamicStrings_Mark (s)); + } l = DynamicStrings_Length (s); i = 0; if (l > 0) { /* skip over leading zeros */ while ((i < l) && ((DynamicStrings_char (s, i)) == '0')) - i += 1; + { + i += 1; + } /* was the string full of zeros? */ if ((i == l) && ((DynamicStrings_char (s, i-1)) == '0')) { @@ -822,9 +893,13 @@ static DynamicStrings_String doSigFig (DynamicStrings_String s, unsigned int n) /* add a leading zero in case we need to overflow the carry */ z = i; /* remember where we inserted zero */ if (z == 0) /* remember where we inserted zero */ - s = DynamicStrings_ConCat (DynamicStrings_InitStringChar ('0'), DynamicStrings_Mark (s)); + { + s = DynamicStrings_ConCat (DynamicStrings_InitStringChar ('0'), DynamicStrings_Mark (s)); + } else - s = DynamicStrings_ConCat (DynamicStrings_ConCatChar (DynamicStrings_Slice (DynamicStrings_Mark (s), 0, i), '0'), DynamicStrings_Mark (DynamicStrings_Slice (DynamicStrings_Mark (s), i, 0))); + { + s = DynamicStrings_ConCat (DynamicStrings_ConCatChar (DynamicStrings_Slice (DynamicStrings_Mark (s), 0, i), '0'), DynamicStrings_Mark (DynamicStrings_Slice (DynamicStrings_Mark (s), i, 0))); + } n += 1; /* and increase the number of sig figs needed */ l = DynamicStrings_Length (s); /* and increase the number of sig figs needed */ while ((n > 1) && (i < l)) @@ -838,44 +913,61 @@ static DynamicStrings_String doSigFig (DynamicStrings_String s, unsigned int n) hundreths = DynamicStrings_Slice (DynamicStrings_Mark (s), i+1, i+3); s = t; if ((StringConvert_stoc (hundreths)) >= 50) - s = carryOne (DynamicStrings_Mark (s), (unsigned int) i); + { + s = carryOne (DynamicStrings_Mark (s), (unsigned int) i); + } hundreths = DynamicStrings_KillString (hundreths); } else if ((i+2) <= l) { + /* avoid dangling else. */ t = DynamicStrings_Dup (s); tenths = DynamicStrings_Slice (DynamicStrings_Mark (s), i+1, i+2); s = t; if ((StringConvert_stoc (tenths)) >= 5) - s = carryOne (DynamicStrings_Mark (s), (unsigned int) i); + { + s = carryOne (DynamicStrings_Mark (s), (unsigned int) i); + } tenths = DynamicStrings_KillString (tenths); } /* check whether we need to remove the leading zero */ if ((DynamicStrings_char (s, z)) == '0') { if (z == 0) - s = DynamicStrings_Slice (DynamicStrings_Mark (s), z+1, 0); + { + s = DynamicStrings_Slice (DynamicStrings_Mark (s), z+1, 0); + } else - s = DynamicStrings_ConCat (DynamicStrings_Slice (DynamicStrings_Mark (s), 0, z), DynamicStrings_Mark (DynamicStrings_Slice (DynamicStrings_Mark (s), z+1, 0))); + { + s = DynamicStrings_ConCat (DynamicStrings_Slice (DynamicStrings_Mark (s), 0, z), DynamicStrings_Mark (DynamicStrings_Slice (DynamicStrings_Mark (s), z+1, 0))); + } l = DynamicStrings_Length (s); } else - point += 1; + { + point += 1; + } if (i < l) { s = DynamicStrings_Slice (DynamicStrings_Mark (s), 0, i); l = DynamicStrings_Length (s); if (l < point) - s = DynamicStrings_ConCat (s, DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitStringChar ('0')), (unsigned int) point-l)); + { + s = DynamicStrings_ConCat (s, DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitStringChar ('0')), (unsigned int) point-l)); + } } /* re-insert the point */ if (point >= 0) { /* avoid gcc warning by using compound statement even if not strictly necessary. */ if (point == 0) - s = DynamicStrings_ConCat (DynamicStrings_InitStringChar ('.'), DynamicStrings_Mark (s)); + { + s = DynamicStrings_ConCat (DynamicStrings_InitStringChar ('.'), DynamicStrings_Mark (s)); + } else - s = DynamicStrings_ConCat (DynamicStrings_ConCatChar (DynamicStrings_Slice (DynamicStrings_Mark (s), 0, point), '.'), DynamicStrings_Mark (DynamicStrings_Slice (DynamicStrings_Mark (s), point, 0))); + { + s = DynamicStrings_ConCat (DynamicStrings_ConCatChar (DynamicStrings_Slice (DynamicStrings_Mark (s), 0, point), '.'), DynamicStrings_Mark (DynamicStrings_Slice (DynamicStrings_Mark (s), point, 0))); + } } return s; } @@ -888,26 +980,36 @@ static DynamicStrings_String doSigFig (DynamicStrings_String s, unsigned int n) static DynamicStrings_String carryOne (DynamicStrings_String s, unsigned int i) { if (i >= 0) - if (IsDigit (DynamicStrings_char (s, (int) i))) - { - /* avoid gcc warning by using compound statement even if not strictly necessary. */ - if ((DynamicStrings_char (s, (int) i)) == '9') - if (i == 0) + { + if (IsDigit (DynamicStrings_char (s, (int) i))) + { + /* avoid gcc warning by using compound statement even if not strictly necessary. */ + if ((DynamicStrings_char (s, (int) i)) == '9') { - s = DynamicStrings_ConCat (DynamicStrings_InitStringChar ('1'), DynamicStrings_Mark (s)); - return s; + if (i == 0) + { + s = DynamicStrings_ConCat (DynamicStrings_InitStringChar ('1'), DynamicStrings_Mark (s)); + return s; + } + else + { + s = DynamicStrings_ConCat (DynamicStrings_ConCatChar (DynamicStrings_Slice (DynamicStrings_Mark (s), 0, (int) i), '0'), DynamicStrings_Mark (DynamicStrings_Slice (DynamicStrings_Mark (s), (int) i+1, 0))); + return carryOne (s, i-1); + } } else { - s = DynamicStrings_ConCat (DynamicStrings_ConCatChar (DynamicStrings_Slice (DynamicStrings_Mark (s), 0, (int) i), '0'), DynamicStrings_Mark (DynamicStrings_Slice (DynamicStrings_Mark (s), (int) i+1, 0))); - return carryOne (s, i-1); + if (i == 0) + { + s = DynamicStrings_ConCat (DynamicStrings_InitStringChar ( ((char) ( ((unsigned int) (DynamicStrings_char (s, (int) i)))+1))), DynamicStrings_Mark (DynamicStrings_Slice (DynamicStrings_Mark (s), (int) i+1, 0))); + } + else + { + s = DynamicStrings_ConCat (DynamicStrings_ConCatChar (DynamicStrings_Slice (DynamicStrings_Mark (s), 0, (int) i), ((char) ( ((unsigned int) (DynamicStrings_char (s, (int) i)))+1))), DynamicStrings_Mark (DynamicStrings_Slice (DynamicStrings_Mark (s), (int) i+1, 0))); + } } - else - if (i == 0) - s = DynamicStrings_ConCat (DynamicStrings_InitStringChar ((char) (((unsigned int) (DynamicStrings_char (s, (int) i)))+1)), DynamicStrings_Mark (DynamicStrings_Slice (DynamicStrings_Mark (s), (int) i+1, 0))); - else - s = DynamicStrings_ConCat (DynamicStrings_ConCatChar (DynamicStrings_Slice (DynamicStrings_Mark (s), 0, (int) i), (char) (((unsigned int) (DynamicStrings_char (s, (int) i)))+1)), DynamicStrings_Mark (DynamicStrings_Slice (DynamicStrings_Mark (s), (int) i+1, 0))); - } + } + } return s; } @@ -934,31 +1036,57 @@ DynamicStrings_String StringConvert_IntegerToString (int i, unsigned int width, /* remember that -15 MOD 4 = 1 in Modula-2 */ c = ((unsigned int ) (abs (i+1)))+1; if (width > 0) - return DynamicStrings_ConCat (StringConvert_IntegerToString (-((int ) (c / base)), width-1, padding, sign, base, lower), DynamicStrings_Mark (StringConvert_IntegerToString ((int) c % base, 0, ' ', FALSE, base, lower))); + { + return DynamicStrings_ConCat (StringConvert_IntegerToString (-((int ) (c / base)), width-1, padding, sign, base, lower), DynamicStrings_Mark (StringConvert_IntegerToString ((int) c % base, 0, ' ', FALSE, base, lower))); + } else - return DynamicStrings_ConCat (StringConvert_IntegerToString (-((int ) (c / base)), 0, padding, sign, base, lower), DynamicStrings_Mark (StringConvert_IntegerToString ((int) c % base, 0, ' ', FALSE, base, lower))); + { + return DynamicStrings_ConCat (StringConvert_IntegerToString (-((int ) (c / base)), 0, padding, sign, base, lower), DynamicStrings_Mark (StringConvert_IntegerToString ((int) c % base, 0, ' ', FALSE, base, lower))); + } } else - s = DynamicStrings_InitString ((char *) "-", 1); + { + s = DynamicStrings_InitString ((char *) "-", 1); + } i = -i; } else - if (sign) - s = DynamicStrings_InitString ((char *) "+", 1); - else - s = DynamicStrings_InitString ((char *) "", 0); + { + if (sign) + { + s = DynamicStrings_InitString ((char *) "+", 1); + } + else + { + s = DynamicStrings_InitString ((char *) "", 0); + } + } if (i > (((int ) (base))-1)) - s = DynamicStrings_ConCat (DynamicStrings_ConCat (s, DynamicStrings_Mark (StringConvert_IntegerToString ((int) ((unsigned int ) (i)) / base, 0, ' ', FALSE, base, lower))), DynamicStrings_Mark (StringConvert_IntegerToString ((int) ((unsigned int ) (i)) % base, 0, ' ', FALSE, base, lower))); + { + s = DynamicStrings_ConCat (DynamicStrings_ConCat (s, DynamicStrings_Mark (StringConvert_IntegerToString ((int) ((unsigned int ) (i)) / base, 0, ' ', FALSE, base, lower))), DynamicStrings_Mark (StringConvert_IntegerToString ((int) ((unsigned int ) (i)) % base, 0, ' ', FALSE, base, lower))); + } else - if (i <= 9) - s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitStringChar ((char) (((unsigned int ) (i))+((unsigned int) ('0')))))); - else - if (lower) - s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitStringChar ((char) ((((unsigned int ) (i))+((unsigned int) ('a')))-10)))); + { + if (i <= 9) + { + s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitStringChar ( ((char) (((unsigned int ) (i))+ ((unsigned int) ('0'))))))); + } else - s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitStringChar ((char) ((((unsigned int ) (i))+((unsigned int) ('A')))-10)))); + { + if (lower) + { + s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitStringChar ( ((char) ((((unsigned int ) (i))+ ((unsigned int) ('a')))-10))))); + } + else + { + s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitStringChar ( ((char) ((((unsigned int ) (i))+ ((unsigned int) ('A')))-10))))); + } + } + } if (width > (DynamicStrings_Length (s))) - return DynamicStrings_ConCat (DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitStringChar (padding)), width-(DynamicStrings_Length (s))), DynamicStrings_Mark (s)); + { + return DynamicStrings_ConCat (DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitStringChar (padding)), width-(DynamicStrings_Length (s))), DynamicStrings_Mark (s)); + } return s; } @@ -978,17 +1106,31 @@ DynamicStrings_String StringConvert_CardinalToString (unsigned int c, unsigned i s = DynamicStrings_InitString ((char *) "", 0); if (c > (base-1)) - s = DynamicStrings_ConCat (DynamicStrings_ConCat (s, DynamicStrings_Mark (StringConvert_CardinalToString (c / base, 0, ' ', base, lower))), DynamicStrings_Mark (StringConvert_CardinalToString (c % base, 0, ' ', base, lower))); + { + s = DynamicStrings_ConCat (DynamicStrings_ConCat (s, DynamicStrings_Mark (StringConvert_CardinalToString (c / base, 0, ' ', base, lower))), DynamicStrings_Mark (StringConvert_CardinalToString (c % base, 0, ' ', base, lower))); + } else - if (c <= 9) - s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitStringChar ((char) (c+((unsigned int) ('0')))))); - else - if (lower) - s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitStringChar ((char) ((c+((unsigned int) ('a')))-10)))); + { + if (c <= 9) + { + s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitStringChar ( ((char) (c+ ((unsigned int) ('0'))))))); + } else - s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitStringChar ((char) ((c+((unsigned int) ('A')))-10)))); + { + if (lower) + { + s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitStringChar ( ((char) ((c+ ((unsigned int) ('a')))-10))))); + } + else + { + s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitStringChar ( ((char) ((c+ ((unsigned int) ('A')))-10))))); + } + } + } if (width > (DynamicStrings_Length (s))) - return DynamicStrings_ConCat (DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitStringChar (padding)), width-(DynamicStrings_Length (s))), s); + { + return DynamicStrings_ConCat (DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitStringChar (padding)), width-(DynamicStrings_Length (s))), s); + } return s; } @@ -1019,7 +1161,9 @@ int StringConvert_StringToInteger (DynamicStrings_String s, unsigned int base, u while (((DynamicStrings_char (s, (int) n)) == '-') || ((DynamicStrings_char (s, (int) n)) == '+')) { if ((DynamicStrings_char (s, (int) n)) == '-') - negative = ! negative; + { + negative = ! negative; + } n += 1; } while ((n < l) && ((IsDecimalDigitValid (DynamicStrings_char (s, (int) n), base, &c)) || (IsHexidecimalDigitValid (DynamicStrings_char (s, (int) n), base, &c)))) @@ -1030,9 +1174,13 @@ int StringConvert_StringToInteger (DynamicStrings_String s, unsigned int base, u } s = DynamicStrings_KillString (s); if (negative) - return -((int ) (Min (((unsigned int ) (INT_MAX))+1, c))); + { + return -((int ) (Min (((unsigned int ) (INT_MAX))+1, c))); + } else - return (int ) (Min ((unsigned int) INT_MAX, c)); + { + return (int ) (Min ((unsigned int) INT_MAX, c)); + } } @@ -1058,7 +1206,9 @@ unsigned int StringConvert_StringToCardinal (DynamicStrings_String s, unsigned i { /* parse leading + */ while ((DynamicStrings_char (s, (int) n)) == '+') - n += 1; + { + n += 1; + } while ((n < l) && ((IsDecimalDigitValid (DynamicStrings_char (s, (int) n), base, &c)) || (IsHexidecimalDigitValid (DynamicStrings_char (s, (int) n), base, &c)))) { (*found) = TRUE; @@ -1095,31 +1245,57 @@ DynamicStrings_String StringConvert_LongIntegerToString (long int i, unsigned in is very likely MAX(LONGINT), it is safer not to assume this is the case */ c = ((long unsigned int ) (labs (i+1)))+1; if (width > 0) - return DynamicStrings_ConCat (StringConvert_LongIntegerToString (-((long int ) (c / ((long unsigned int ) (base)))), width-1, padding, sign, base, lower), DynamicStrings_Mark (StringConvert_LongIntegerToString ((long int) c % ((long unsigned int ) (base)), 0, ' ', FALSE, base, lower))); + { + return DynamicStrings_ConCat (StringConvert_LongIntegerToString (-((long int ) (c / ((long unsigned int ) (base)))), width-1, padding, sign, base, lower), DynamicStrings_Mark (StringConvert_LongIntegerToString ((long int) c % ((long unsigned int ) (base)), 0, ' ', FALSE, base, lower))); + } else - return DynamicStrings_ConCat (StringConvert_LongIntegerToString (-((long int ) (c / ((long unsigned int ) (base)))), 0, padding, sign, base, lower), DynamicStrings_Mark (StringConvert_LongIntegerToString ((long int) c % ((long unsigned int ) (base)), 0, ' ', FALSE, base, lower))); + { + return DynamicStrings_ConCat (StringConvert_LongIntegerToString (-((long int ) (c / ((long unsigned int ) (base)))), 0, padding, sign, base, lower), DynamicStrings_Mark (StringConvert_LongIntegerToString ((long int) c % ((long unsigned int ) (base)), 0, ' ', FALSE, base, lower))); + } } else - s = DynamicStrings_InitString ((char *) "-", 1); + { + s = DynamicStrings_InitString ((char *) "-", 1); + } i = -i; } else - if (sign) - s = DynamicStrings_InitString ((char *) "+", 1); - else - s = DynamicStrings_InitString ((char *) "", 0); + { + if (sign) + { + s = DynamicStrings_InitString ((char *) "+", 1); + } + else + { + s = DynamicStrings_InitString ((char *) "", 0); + } + } if (i > ((long int ) (base-1))) - s = DynamicStrings_ConCat (DynamicStrings_ConCat (s, DynamicStrings_Mark (StringConvert_LongIntegerToString (i / ((long int ) (base)), 0, ' ', FALSE, base, lower))), DynamicStrings_Mark (StringConvert_LongIntegerToString (i % ((long int ) (base)), 0, ' ', FALSE, base, lower))); + { + s = DynamicStrings_ConCat (DynamicStrings_ConCat (s, DynamicStrings_Mark (StringConvert_LongIntegerToString (i / ((long int ) (base)), 0, ' ', FALSE, base, lower))), DynamicStrings_Mark (StringConvert_LongIntegerToString (i % ((long int ) (base)), 0, ' ', FALSE, base, lower))); + } else - if (i <= 9) - s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitStringChar ((char) (((unsigned int ) (i))+((unsigned int) ('0')))))); - else - if (lower) - s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitStringChar ((char) ((((unsigned int ) (i))+((unsigned int) ('a')))-10)))); + { + if (i <= 9) + { + s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitStringChar ( ((char) (((unsigned int ) (i))+ ((unsigned int) ('0'))))))); + } else - s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitStringChar ((char) ((((unsigned int ) (i))+((unsigned int) ('A')))-10)))); + { + if (lower) + { + s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitStringChar ( ((char) ((((unsigned int ) (i))+ ((unsigned int) ('a')))-10))))); + } + else + { + s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitStringChar ( ((char) ((((unsigned int ) (i))+ ((unsigned int) ('A')))-10))))); + } + } + } if (width > (DynamicStrings_Length (s))) - return DynamicStrings_ConCat (DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitStringChar (padding)), width-(DynamicStrings_Length (s))), s); + { + return DynamicStrings_ConCat (DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitStringChar (padding)), width-(DynamicStrings_Length (s))), s); + } return s; } @@ -1150,7 +1326,9 @@ long int StringConvert_StringToLongInteger (DynamicStrings_String s, unsigned in while (((DynamicStrings_char (s, (int) n)) == '-') || ((DynamicStrings_char (s, (int) n)) == '+')) { if ((DynamicStrings_char (s, (int) n)) == '-') - negative = ! negative; + { + negative = ! negative; + } n += 1; } while ((n < l) && ((IsDecimalDigitValidLong (DynamicStrings_char (s, (int) n), base, &c)) || (IsHexidecimalDigitValidLong (DynamicStrings_char (s, (int) n), base, &c)))) @@ -1161,9 +1339,13 @@ long int StringConvert_StringToLongInteger (DynamicStrings_String s, unsigned in } s = DynamicStrings_KillString (s); if (negative) - return -((long int ) (LongMin (((long unsigned int ) (LONG_MAX))+1, c))); + { + return -((long int ) (LongMin (((long unsigned int ) (LONG_MAX))+1, c))); + } else - return (long int ) (LongMin ((long unsigned int) LONG_MAX, c)); + { + return (long int ) (LongMin ((long unsigned int) LONG_MAX, c)); + } } @@ -1184,17 +1366,31 @@ DynamicStrings_String StringConvert_LongCardinalToString (long unsigned int c, u s = DynamicStrings_InitString ((char *) "", 0); if (c > ((long unsigned int ) (base-1))) - s = DynamicStrings_ConCat (DynamicStrings_ConCat (s, StringConvert_LongCardinalToString (c / ((long unsigned int ) (base)), 0, ' ', base, lower)), StringConvert_LongCardinalToString (c % ((long unsigned int ) (base)), 0, ' ', base, lower)); + { + s = DynamicStrings_ConCat (DynamicStrings_ConCat (s, StringConvert_LongCardinalToString (c / ((long unsigned int ) (base)), 0, ' ', base, lower)), StringConvert_LongCardinalToString (c % ((long unsigned int ) (base)), 0, ' ', base, lower)); + } else - if (c <= 9) - s = DynamicStrings_ConCat (s, DynamicStrings_InitStringChar ((char) (((unsigned int ) (c))+((unsigned int) ('0'))))); - else - if (lower) - s = DynamicStrings_ConCat (s, DynamicStrings_InitStringChar ((char) ((((unsigned int ) (c))+((unsigned int) ('a')))-10))); + { + if (c <= 9) + { + s = DynamicStrings_ConCat (s, DynamicStrings_InitStringChar ( ((char) (((unsigned int ) (c))+ ((unsigned int) ('0')))))); + } else - s = DynamicStrings_ConCat (s, DynamicStrings_InitStringChar ((char) ((((unsigned int ) (c))+((unsigned int) ('A')))-10))); + { + if (lower) + { + s = DynamicStrings_ConCat (s, DynamicStrings_InitStringChar ( ((char) ((((unsigned int ) (c))+ ((unsigned int) ('a')))-10)))); + } + else + { + s = DynamicStrings_ConCat (s, DynamicStrings_InitStringChar ( ((char) ((((unsigned int ) (c))+ ((unsigned int) ('A')))-10)))); + } + } + } if (width > (DynamicStrings_Length (s))) - return DynamicStrings_ConCat (DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitStringChar (padding)), width-(DynamicStrings_Length (s))), s); + { + return DynamicStrings_ConCat (DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitStringChar (padding)), width-(DynamicStrings_Length (s))), s); + } return s; } @@ -1221,7 +1417,9 @@ long unsigned int StringConvert_StringToLongCardinal (DynamicStrings_String s, u { /* parse leading + */ while ((DynamicStrings_char (s, (int) n)) == '+') - n += 1; + { + n += 1; + } while ((n < l) && ((IsDecimalDigitValidLong (DynamicStrings_char (s, (int) n), base, &c)) || (IsHexidecimalDigitValidLong (DynamicStrings_char (s, (int) n), base, &c)))) { (*found) = TRUE; @@ -1250,17 +1448,31 @@ DynamicStrings_String StringConvert_ShortCardinalToString (short unsigned int c, s = DynamicStrings_InitString ((char *) "", 0); if (((unsigned int ) (c)) > (base-1)) - s = DynamicStrings_ConCat (DynamicStrings_ConCat (s, StringConvert_ShortCardinalToString (c / ((short unsigned int ) (base)), 0, ' ', base, lower)), StringConvert_ShortCardinalToString (c % ((short unsigned int ) (base)), 0, ' ', base, lower)); + { + s = DynamicStrings_ConCat (DynamicStrings_ConCat (s, StringConvert_ShortCardinalToString (c / ((short unsigned int ) (base)), 0, ' ', base, lower)), StringConvert_ShortCardinalToString (c % ((short unsigned int ) (base)), 0, ' ', base, lower)); + } else - if (c <= 9) - s = DynamicStrings_ConCat (s, DynamicStrings_InitStringChar ((char) (((unsigned int ) (c))+((unsigned int) ('0'))))); - else - if (lower) - s = DynamicStrings_ConCat (s, DynamicStrings_InitStringChar ((char) ((((unsigned int ) (c))+((unsigned int) ('a')))-10))); + { + if (c <= 9) + { + s = DynamicStrings_ConCat (s, DynamicStrings_InitStringChar ( ((char) (((unsigned int ) (c))+ ((unsigned int) ('0')))))); + } else - s = DynamicStrings_ConCat (s, DynamicStrings_InitStringChar ((char) ((((unsigned int ) (c))+((unsigned int) ('A')))-10))); + { + if (lower) + { + s = DynamicStrings_ConCat (s, DynamicStrings_InitStringChar ( ((char) ((((unsigned int ) (c))+ ((unsigned int) ('a')))-10)))); + } + else + { + s = DynamicStrings_ConCat (s, DynamicStrings_InitStringChar ( ((char) ((((unsigned int ) (c))+ ((unsigned int) ('A')))-10)))); + } + } + } if (width > (DynamicStrings_Length (s))) - return DynamicStrings_ConCat (DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitStringChar (padding)), width-(DynamicStrings_Length (s))), s); + { + return DynamicStrings_ConCat (DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitStringChar (padding)), width-(DynamicStrings_Length (s))), s); + } return s; } @@ -1287,7 +1499,9 @@ short unsigned int StringConvert_StringToShortCardinal (DynamicStrings_String s, { /* parse leading + */ while ((DynamicStrings_char (s, (int) n)) == '+') - n += 1; + { + n += 1; + } while ((n < l) && ((IsDecimalDigitValidShort (DynamicStrings_char (s, (int) n), base, &c)) || (IsHexidecimalDigitValidShort (DynamicStrings_char (s, (int) n), base, &c)))) { (*found) = TRUE; @@ -1471,7 +1685,9 @@ DynamicStrings_String StringConvert_LongrealToString (long double x, unsigned in r = ldtoa_ldtoa (x, (ldtoa_Mode) ldtoa_decimaldigits, 100, &point, &sign); } else - r = ldtoa_ldtoa (x, (ldtoa_Mode) ldtoa_decimaldigits, 100, &point, &sign); + { + r = ldtoa_ldtoa (x, (ldtoa_Mode) ldtoa_decimaldigits, 100, &point, &sign); + } s = DynamicStrings_InitStringCharStar (r); libc_free (r); l = DynamicStrings_Length (s); @@ -1484,7 +1700,9 @@ DynamicStrings_String StringConvert_LongrealToString (long double x, unsigned in { FractionWidth -= 1; if (((int ) (FractionWidth)) > (point-l)) - s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitString ((char *) "0", 1)), FractionWidth))); + { + s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitString ((char *) "0", 1)), FractionWidth))); + } } } else if (point < 0) @@ -1494,43 +1712,62 @@ DynamicStrings_String StringConvert_LongrealToString (long double x, unsigned in l = DynamicStrings_Length (s); s = DynamicStrings_ConCat (DynamicStrings_InitString ((char *) "0.", 2), DynamicStrings_Mark (s)); if (! maxprecision && (l < ((int ) (FractionWidth)))) - s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitString ((char *) "0", 1)), (unsigned int) ((int ) (FractionWidth))-l))); + { + s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitString ((char *) "0", 1)), (unsigned int) ((int ) (FractionWidth))-l))); + } } else { + /* avoid dangling else. */ if (point == 0) - s = DynamicStrings_ConCat (DynamicStrings_InitString ((char *) "0.", 2), DynamicStrings_Mark (DynamicStrings_Slice (DynamicStrings_Mark (s), point, 0))); + { + s = DynamicStrings_ConCat (DynamicStrings_InitString ((char *) "0.", 2), DynamicStrings_Mark (DynamicStrings_Slice (DynamicStrings_Mark (s), point, 0))); + } else - s = DynamicStrings_ConCat (DynamicStrings_ConCatChar (DynamicStrings_Slice (DynamicStrings_Mark (s), 0, point), '.'), DynamicStrings_Mark (DynamicStrings_Slice (DynamicStrings_Mark (s), point, 0))); + { + s = DynamicStrings_ConCat (DynamicStrings_ConCatChar (DynamicStrings_Slice (DynamicStrings_Mark (s), 0, point), '.'), DynamicStrings_Mark (DynamicStrings_Slice (DynamicStrings_Mark (s), point, 0))); + } if (! maxprecision && ((l-point) < ((int ) (FractionWidth)))) - s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitString ((char *) "0", 1)), (unsigned int) ((int ) (FractionWidth))-(l-point)))); + { + s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitString ((char *) "0", 1)), (unsigned int) ((int ) (FractionWidth))-(l-point)))); + } } if ((DynamicStrings_Length (s)) > TotalWidth) { /* avoid gcc warning by using compound statement even if not strictly necessary. */ if (TotalWidth > 0) - if (sign) - { - s = DynamicStrings_Slice (DynamicStrings_Mark (StringConvert_ToDecimalPlaces (s, FractionWidth)), 0, (int) TotalWidth-1); - s = DynamicStrings_ConCat (DynamicStrings_InitStringChar ('-'), DynamicStrings_Mark (s)); - sign = FALSE; - } - else - /* minus 1 because all results will include a '.' */ - s = DynamicStrings_Slice (DynamicStrings_Mark (StringConvert_ToDecimalPlaces (s, FractionWidth)), 0, (int) TotalWidth); + { + if (sign) + { + s = DynamicStrings_Slice (DynamicStrings_Mark (StringConvert_ToDecimalPlaces (s, FractionWidth)), 0, (int) TotalWidth-1); + s = DynamicStrings_ConCat (DynamicStrings_InitStringChar ('-'), DynamicStrings_Mark (s)); + sign = FALSE; + } + else + { + /* minus 1 because all results will include a '.' */ + s = DynamicStrings_Slice (DynamicStrings_Mark (StringConvert_ToDecimalPlaces (s, FractionWidth)), 0, (int) TotalWidth); + } + } else - if (sign) - { - s = StringConvert_ToDecimalPlaces (s, FractionWidth); - s = DynamicStrings_ConCat (DynamicStrings_InitStringChar ('-'), DynamicStrings_Mark (s)); - sign = FALSE; - } - else - /* minus 1 because all results will include a '.' */ - s = StringConvert_ToDecimalPlaces (s, FractionWidth); + { + if (sign) + { + s = StringConvert_ToDecimalPlaces (s, FractionWidth); + s = DynamicStrings_ConCat (DynamicStrings_InitStringChar ('-'), DynamicStrings_Mark (s)); + sign = FALSE; + } + else + { + /* minus 1 because all results will include a '.' */ + s = StringConvert_ToDecimalPlaces (s, FractionWidth); + } + } } if ((DynamicStrings_Length (s)) < TotalWidth) - s = DynamicStrings_ConCat (DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitStringChar (' ')), TotalWidth-(DynamicStrings_Length (s))), DynamicStrings_Mark (s)); + { + s = DynamicStrings_ConCat (DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitStringChar (' ')), TotalWidth-(DynamicStrings_Length (s))), DynamicStrings_Mark (s)); + } return s; } @@ -1585,17 +1822,25 @@ DynamicStrings_String StringConvert_ToSigFig (DynamicStrings_String s, unsigned Assert ((IsDigit (DynamicStrings_char (s, 0))) || ((DynamicStrings_char (s, 0)) == '.'), (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/StringConvert.mod", 54, 1215, (char *) "ToSigFig", 8); point = DynamicStrings_Index (s, '.', 0); if (point < 0) - poTen = DynamicStrings_Length (s); + { + poTen = DynamicStrings_Length (s); + } else - poTen = point; + { + poTen = point; + } s = doSigFig (s, n); /* if the last character is '.' remove it */ if (((DynamicStrings_Length (s)) > 0) && ((DynamicStrings_char (s, -1)) == '.')) - return DynamicStrings_Slice (DynamicStrings_Mark (s), 0, -1); + { + return DynamicStrings_Slice (DynamicStrings_Mark (s), 0, -1); + } else { if (poTen > (DynamicStrings_Length (s))) - s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitStringChar ('0')), poTen-(DynamicStrings_Length (s))))); + { + s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitStringChar ('0')), poTen-(DynamicStrings_Length (s))))); + } return s; } } @@ -1630,16 +1875,24 @@ DynamicStrings_String StringConvert_ToDecimalPlaces (DynamicStrings_String s, un { /* avoid gcc warning by using compound statement even if not strictly necessary. */ if (n > 0) - return DynamicStrings_ConCat (DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitStringChar ('.'))), DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitStringChar ('0')), n)); + { + return DynamicStrings_ConCat (DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitStringChar ('.'))), DynamicStrings_Mult (DynamicStrings_Mark (DynamicStrings_InitStringChar ('0')), n)); + } else - return s; + { + return s; + } } s = doDecimalPlaces (s, n); /* if the last character is '.' remove it */ if (((DynamicStrings_Length (s)) > 0) && ((DynamicStrings_char (s, -1)) == '.')) - return DynamicStrings_Slice (DynamicStrings_Mark (s), 0, -1); + { + return DynamicStrings_Slice (DynamicStrings_Mark (s), 0, -1); + } else - return s; + { + return s; + } } void _M2_StringConvert_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[]) --- a/src/gcc/gm2/mc-boot/GSysStorage.c +++ b/src/gcc/gm2/mc-boot/GSysStorage.c @@ -69,7 +69,9 @@ void SysStorage_ALLOCATE (void * *a, unsigned int Size) { (*a) = libc_malloc ((size_t) Size); if ((*a) == NULL) - Debug_Halt ((char *) "out of memory error", 19, 31, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/SysStorage.mod", 51); + { + Debug_Halt ((char *) "out of memory error", 19, 31, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/SysStorage.mod", 51); + } } void SysStorage_DEALLOCATE (void * *a, unsigned int Size) @@ -90,12 +92,16 @@ void SysStorage_DEALLOCATE (void * *a, unsigned int Size) void SysStorage_REALLOCATE (void * *a, unsigned int Size) { if ((*a) == NULL) - SysStorage_ALLOCATE (a, Size); + { + SysStorage_ALLOCATE (a, Size); + } else { (*a) = libc_realloc ((*a), (size_t) Size); if ((*a) == NULL) - Debug_Halt ((char *) "out of memory error", 19, 60, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/SysStorage.mod", 51); + { + Debug_Halt ((char *) "out of memory error", 19, 60, (char *) "../../gcc-versionno/gcc/gm2/gm2-libs/SysStorage.mod", 51); + } } } @@ -114,7 +120,9 @@ unsigned int SysStorage_Available (unsigned int Size) a = libc_malloc ((size_t) Size); if (a == NULL) - return FALSE; + { + return FALSE; + } else { libc_free (a); --- a/src/gcc/gm2/mc-boot/GTimeString.c +++ b/src/gcc/gm2/mc-boot/GTimeString.c @@ -50,14 +50,18 @@ void TimeString_GetTimeString (char *a, unsigned int _a_high) Addr = wrapc_strtime (); i = 0; if (Addr != NULL) - while ((i < (_a_high)) && ((*Addr) != ASCII_nul)) - { - a[i] = (*Addr); - i += 1; - Addr += 1; - } - if (i < (_a_high)) - a[i] = ASCII_nul; + { + while ((i < _a_high) && ((*Addr) != ASCII_nul)) + { + a[i] = (*Addr); + i += 1; + Addr += 1; + } + } + if (i < _a_high) + { + a[i] = ASCII_nul; + } } void _M2_TimeString_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[]) --- a/src/gcc/gm2/mc-boot/Galists.c +++ b/src/gcc/gm2/mc-boot/Galists.c @@ -181,7 +181,9 @@ void alists_killList (alists_alist *l) if ((*l) != NULL) { if ((*l)->next != NULL) - alists_killList (&(*l)->next); + { + alists_killList (&(*l)->next); + } Storage_DEALLOCATE ((void **) &(*l), sizeof (_T1)); } } @@ -199,9 +201,13 @@ void alists_putItemIntoList (alists_alist l, void * c) l->elements.array[l->noOfelements-1] = c; } else if (l->next != NULL) - alists_putItemIntoList (l->next, c); + { + /* avoid dangling else. */ + alists_putItemIntoList (l->next, c); + } else { + /* avoid dangling else. */ l->next = alists_initList (); alists_putItemIntoList (l->next, c); } @@ -217,9 +223,13 @@ void * alists_getItemFromList (alists_alist l, unsigned int n) while (l != NULL) { if (n <= l->noOfelements) - return l->elements.array[n-1]; + { + return l->elements.array[n-1]; + } else - n -= l->noOfelements; + { + n -= l->noOfelements; + } l = l->next; } return 0; @@ -237,15 +247,23 @@ unsigned int alists_getIndexOfList (alists_alist l, void * c) unsigned int i; if (l == NULL) - return 0; + { + return 0; + } else { i = 1; while (i <= l->noOfelements) - if (l->elements.array[i-1] == c) - return i; - else - i += 1; + { + if (l->elements.array[i-1] == c) + { + return i; + } + else + { + i += 1; + } + } return l->noOfelements+(alists_getIndexOfList (l->next, c)); } } @@ -260,7 +278,9 @@ unsigned int alists_noOfItemsInList (alists_alist l) unsigned int t; if (l == NULL) - return 0; + { + return 0; + } else { t = 0; @@ -281,7 +301,9 @@ unsigned int alists_noOfItemsInList (alists_alist l) void alists_includeItemIntoList (alists_alist l, void * c) { if (! (alists_isItemInList (l, c))) - alists_putItemIntoList (l, c); + { + alists_putItemIntoList (l, c); + } } @@ -303,9 +325,13 @@ void alists_removeItemFromList (alists_alist l, void * c) do { i = 1; while ((i <= l->noOfelements) && (l->elements.array[i-1] != c)) - i += 1; + { + i += 1; + } if ((i <= l->noOfelements) && (l->elements.array[i-1] == c)) - found = TRUE; + { + found = TRUE; + } else { p = l; @@ -313,7 +339,9 @@ void alists_removeItemFromList (alists_alist l, void * c) } } while (! ((l == NULL) || found)); if (found) - removeItem (p, l, i); + { + removeItem (p, l, i); + } } } @@ -329,10 +357,16 @@ unsigned int alists_isItemInList (alists_alist l, void * c) do { i = 1; while (i <= l->noOfelements) - if (l->elements.array[i-1] == c) - return TRUE; - else - i += 1; + { + if (l->elements.array[i-1] == c) + { + return TRUE; + } + else + { + i += 1; + } + } l = l->next; } while (! (l == NULL)); return FALSE; --- a/src/gcc/gm2/mc-boot/Gdecl.c +++ b/src/gcc/gm2/mc-boot/Gdecl.c @@ -5,20 +5,19 @@ Contributed by Gaius Mulley . This file is part of GNU Modula-2. -GNU Modula-2 is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 3, or (at your option) any later -version. +GNU Modula-2 is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3, or (at your option) +any later version. -GNU Modula-2 is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +GNU Modula-2 is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. -You should have received a copy of the GNU General Public License along -with gm2; see the file COPYING. If not, write to the Free Software -Foundation, 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. */ +You should have received a copy of the GNU General Public License +along with GNU Modula-2; see the file COPYING3. If not see +. */ # if !defined (PROC_D) # define PROC_D @@ -141,6 +140,9 @@ typedef struct StdIO_ProcRead_p StdIO_ProcRead; # define debugDecl FALSE # define caseException TRUE # define returnException TRUE +# define forceCompoundStatement TRUE +typedef struct intrinsicT_r intrinsicT; + typedef struct fixupInfo_r fixupInfo; typedef struct explistT_r explistT; @@ -649,6 +651,13 @@ struct _T10_r { alists_alist next; }; +struct intrinsicT_r { + decl_node args; + unsigned int noArgs; + decl_node type; + commentPair intrinsicComment; + }; + struct funccallT_r { decl_node function; decl_node args; @@ -844,6 +853,7 @@ struct DebugInfo_r { struct _T1_r { nodeT kind; /* case tag */ union { + intrinsicT intrinsicF; explistT explistF; exitT exitF; returnT returnF; @@ -2692,11 +2702,11 @@ unsigned int mcOptions_getDebugTopological (void); DynamicStrings_String mcOptions_getHPrefix (void); unsigned int mcOptions_getIgnoreFQ (void); void mcOptions_writeGPLheader (FIO_File f); -DynamicStrings_String FormatStrings_Sprintf0 (DynamicStrings_String s); -DynamicStrings_String FormatStrings_Sprintf1 (DynamicStrings_String s, unsigned char *w_, unsigned int _w_high); -DynamicStrings_String FormatStrings_Sprintf2 (DynamicStrings_String s, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high); -DynamicStrings_String FormatStrings_Sprintf3 (DynamicStrings_String s, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high, unsigned char *w3_, unsigned int _w3_high); -DynamicStrings_String FormatStrings_Sprintf4 (DynamicStrings_String s, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high, unsigned char *w3_, unsigned int _w3_high, unsigned char *w4_, unsigned int _w4_high); +DynamicStrings_String FormatStrings_Sprintf0 (DynamicStrings_String fmt); +DynamicStrings_String FormatStrings_Sprintf1 (DynamicStrings_String fmt, unsigned char *w_, unsigned int _w_high); +DynamicStrings_String FormatStrings_Sprintf2 (DynamicStrings_String fmt, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high); +DynamicStrings_String FormatStrings_Sprintf3 (DynamicStrings_String fmt, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high, unsigned char *w3_, unsigned int _w3_high); +DynamicStrings_String FormatStrings_Sprintf4 (DynamicStrings_String fmt, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high, unsigned char *w3_, unsigned int _w3_high, unsigned char *w4_, unsigned int _w4_high); ssize_t libc_write (int d, void * buf, size_t nbytes); ssize_t libc_read (int d, void * buf, size_t nbytes); int libc_system (void * a); @@ -3667,10 +3677,38 @@ static decl_node doMakeConstExp (void); static unsigned int isAnyType (decl_node n); /* - makeCast - + makeVal - creates a VAL (type, expression) node. +*/ + +static decl_node makeVal (decl_node params); + +/* + makeCast - creates a cast node TYPENAME (expr). */ static decl_node makeCast (decl_node c, decl_node p); +static decl_node makeIntrinsicProc (nodeT k, unsigned int noArgs, decl_node p); + +/* + makeIntrinsicUnaryType - +*/ + +static decl_node makeIntrinsicUnaryType (nodeT k, decl_node paramList, decl_node returnType); + +/* + makeIntrinsicBinaryType - +*/ + +static decl_node makeIntrinsicBinaryType (nodeT k, decl_node paramList, decl_node returnType); + +/* + checkIntrinsic - checks to see if the function call to, c, with + parameter list, n, is really an intrinic. If it + is an intrinic then an intrinic node is created + and returned. Otherwise NIL is returned. +*/ + +static decl_node checkIntrinsic (decl_node c, decl_node n); /* isFuncCall - returns TRUE if, n, is a function/procedure call. @@ -3732,6 +3770,12 @@ static void out3 (char *a_, unsigned int _a_high, unsigned int l, nameKey_Name n static unsigned int isUnary (decl_node n); +/* + isBinary - returns TRUE if, n, is an binary node. +*/ + +static unsigned int isBinary (decl_node n); + /* makeUnary - create a unary expression node with, e, as the argument and res as the return type. @@ -3770,10 +3814,10 @@ static decl_node resolveString (decl_node n); static decl_node foldBinary (nodeT k, decl_node l, decl_node r, decl_node res); /* - makeBinary - create a binary node with left/right/result type: l, r and res. + makeBinary - create a binary node with left/right/result type: l, r and resultType. */ -static decl_node makeBinary (nodeT k, decl_node l, decl_node r, decl_node res); +static decl_node makeBinary (nodeT k, decl_node l, decl_node r, decl_node resultType); /* doMakeBinary - returns a binary node containing left/right/result values @@ -5097,7 +5141,8 @@ static void doMinC (mcPretty_pretty p, decl_node n); static void doMaxC (mcPretty_pretty p, decl_node n); /* - isIntrinsic - returns if, n, is an instrinsic procedure. + isIntrinsic - returns if, n, is an intrinsic procedure. + The intrinsic functions are represented as unary and binary nodes. */ static unsigned int isIntrinsic (decl_node n); @@ -5132,6 +5177,24 @@ static void doCmplx (mcPretty_pretty p, decl_node n); static void doIntrinsicC (mcPretty_pretty p, decl_node n); +/* + isIntrinsicFunction - returns true if, n, is an instrinsic function. +*/ + +static unsigned int isIntrinsicFunction (decl_node n); + +/* + doSizeC - +*/ + +static void doSizeC (mcPretty_pretty p, decl_node n); + +/* + doConvertC - +*/ + +static void doConvertC (mcPretty_pretty p, decl_node n, char *conversion_, unsigned int _conversion_high); + /* getFuncFromExpr - */ @@ -5869,6 +5932,12 @@ static void visitVarargs (alists_alist v, decl_node n, nodeProcedure p); static void visitSetValue (alists_alist v, decl_node n, nodeProcedure p); +/* + visitIntrinsic - +*/ + +static void visitIntrinsic (alists_alist v, decl_node n, nodeProcedure p); + /* visitDependants - helper procedure function called from visitNode. node n has just been visited, this procedure will @@ -6419,7 +6488,9 @@ static decl_node newNode (nodeT k) Storage_ALLOCATE ((void **) &d, sizeof (_T1)); if (d == NULL) - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } else { d->kind = k; @@ -6452,7 +6523,9 @@ static unsigned int isLocal (decl_node n) s = decl_getScope (n); if (s != NULL) - return decl_isProcedure (s); + { + return decl_isProcedure (s); + } return FALSE; } @@ -6479,7 +6552,9 @@ static void importEnumFields (decl_node m, decl_node n) e = Indexing_GetIndice (n->enumerationF.listOfSons, i); r = decl_import (m, e); if (e != r) - mcMetaError_metaError2 ((char *) "enumeration field {%1ad} cannot be imported implicitly into {%2d} due to a name clash", 85, (unsigned char *) &e, (sizeof (e)-1), (unsigned char *) &m, (sizeof (m)-1)); + { + mcMetaError_metaError2 ((char *) "enumeration field {%1ad} cannot be imported implicitly into {%2d} due to a name clash", 85, (unsigned char *) &e, (sizeof (e)-1), (unsigned char *) &m, (sizeof (m)-1)); + } i += 1; } } @@ -6656,7 +6731,9 @@ static decl_node addTo (scopeT *decls, decl_node d) { /* avoid gcc warning by using compound statement even if not strictly necessary. */ if ((symbolKey_getSymKey ((*decls).symbols, n)) == NULL) - symbolKey_putSymKey ((*decls).symbols, n, (void *) d); + { + symbolKey_putSymKey ((*decls).symbols, n, (void *) d); + } else { mcMetaError_metaError1 ((char *) "{%1DMad} was declared", 21, (unsigned char *) &d, (sizeof (d)-1)); @@ -6664,16 +6741,27 @@ static decl_node addTo (scopeT *decls, decl_node d) } } if (decl_isConst (d)) - Indexing_IncludeIndiceIntoIndex ((*decls).constants, (void *) d); + { + Indexing_IncludeIndiceIntoIndex ((*decls).constants, (void *) d); + } else if (decl_isVar (d)) - Indexing_IncludeIndiceIntoIndex ((*decls).variables, (void *) d); + { + /* avoid dangling else. */ + Indexing_IncludeIndiceIntoIndex ((*decls).variables, (void *) d); + } else if (decl_isType (d)) - Indexing_IncludeIndiceIntoIndex ((*decls).types, (void *) d); + { + /* avoid dangling else. */ + Indexing_IncludeIndiceIntoIndex ((*decls).types, (void *) d); + } else if (decl_isProcedure (d)) { + /* avoid dangling else. */ Indexing_IncludeIndiceIntoIndex ((*decls).procedures, (void *) d); if (debugDecl) - libc_printf ((char *) "%d procedures on the dynamic array\\n", 36, Indexing_HighIndice ((*decls).procedures)); + { + libc_printf ((char *) "%d procedures on the dynamic array\\n", 36, Indexing_HighIndice ((*decls).procedures)); + } } return d; } @@ -6713,6 +6801,7 @@ static decl_node addToScope (decl_node n) } else if (decl_isModule (s)) { + /* avoid dangling else. */ if (debugDecl) { outText (doP, (char *) "adding ", 7); @@ -6723,6 +6812,7 @@ static decl_node addToScope (decl_node n) } else if (decl_isDef (s)) { + /* avoid dangling else. */ if (debugDecl) { outText (doP, (char *) "adding ", 7); @@ -6734,6 +6824,7 @@ static decl_node addToScope (decl_node n) } else if (decl_isImp (s)) { + /* avoid dangling else. */ if (debugDecl) { outText (doP, (char *) "adding ", 7); @@ -6754,7 +6845,9 @@ static void addModuleToScope (decl_node m, decl_node i) { mcDebug_assert ((decl_getDeclScope ()) == m); if ((decl_lookupSym (decl_getSymName (i))) == NULL) - i = addToScope (i); + { + i = addToScope (i); + } } @@ -6766,11 +6859,19 @@ static void completedEnum (decl_node n) { mcDebug_assert (((decl_isDef (n)) || (decl_isImp (n))) || (decl_isModule (n))); if (decl_isDef (n)) - n->defF.enumsComplete = TRUE; + { + n->defF.enumsComplete = TRUE; + } else if (decl_isImp (n)) - n->impF.enumsComplete = TRUE; + { + /* avoid dangling else. */ + n->impF.enumsComplete = TRUE; + } else if (decl_isModule (n)) - n->moduleF.enumsComplete = TRUE; + { + /* avoid dangling else. */ + n->moduleF.enumsComplete = TRUE; + } } @@ -6837,14 +6938,16 @@ static decl_node checkPtr (decl_node n) decl_node p; if (lang == ansiCP) - if (decl_isPointer (n)) - { - s = tempName (); - p = decl_makeType (nameKey_makekey (DynamicStrings_string (s))); - decl_putType (p, n); - s = DynamicStrings_KillString (s); - return p; - } + { + if (decl_isPointer (n)) + { + s = tempName (); + p = decl_makeType (nameKey_makekey (DynamicStrings_string (s))); + decl_putType (p, n); + s = DynamicStrings_KillString (s); + return p; + } + } return n; } @@ -6993,7 +7096,9 @@ static unsigned int isIdentList (decl_node n) static unsigned int identListLen (decl_node n) { if (n == NULL) - return 0; + { + return 0; + } else { mcDebug_assert (isIdentList (n)); @@ -7020,7 +7125,9 @@ static void checkParameters (decl_node p, decl_node i, decl_node type, unsigned static void checkMakeVariables (decl_node n, decl_node i, decl_node type, unsigned int isvar) { if (((decl_isImp (currentModule)) || (decl_isModule (currentModule))) && ! n->procedureF.built) - makeVariablesFromParameters (n, i, type, isvar); + { + makeVariablesFromParameters (n, i, type, isvar); + } } @@ -7097,7 +7204,9 @@ static decl_node putFieldRecord (decl_node r, nameKey_Name tag, decl_node type, { /* avoid gcc warning by using compound statement even if not strictly necessary. */ if ((symbolKey_getSymKey (r->recordF.localSymbols, tag)) == nameKey_NulName) - symbolKey_putSymKey (r->recordF.localSymbols, tag, (void *) n); + { + symbolKey_putSymKey (r->recordF.localSymbols, tag, (void *) n); + } else { f = symbolKey_getSymKey (r->recordF.localSymbols, tag); @@ -7111,7 +7220,9 @@ static decl_node putFieldRecord (decl_node r, nameKey_Name tag, decl_node type, p = getParent (r); mcDebug_assert (p->kind == record); if (tag != nameKey_NulName) - symbolKey_putSymKey (p->recordF.localSymbols, tag, (void *) n); + { + symbolKey_putSymKey (p->recordF.localSymbols, tag, (void *) n); + } break; @@ -7246,11 +7357,19 @@ static void addEnumToModule (decl_node m, decl_node e) mcDebug_assert ((decl_isEnumeration (e)) || (decl_isEnumerationField (e))); mcDebug_assert (((decl_isModule (m)) || (decl_isDef (m))) || (decl_isImp (m))); if (decl_isModule (m)) - Indexing_IncludeIndiceIntoIndex (m->moduleF.enumFixup.info, (void *) e); + { + Indexing_IncludeIndiceIntoIndex (m->moduleF.enumFixup.info, (void *) e); + } else if (decl_isDef (m)) - Indexing_IncludeIndiceIntoIndex (m->defF.enumFixup.info, (void *) e); + { + /* avoid dangling else. */ + Indexing_IncludeIndiceIntoIndex (m->defF.enumFixup.info, (void *) e); + } else if (decl_isImp (m)) - Indexing_IncludeIndiceIntoIndex (m->impF.enumFixup.info, (void *) e); + { + /* avoid dangling else. */ + Indexing_IncludeIndiceIntoIndex (m->impF.enumFixup.info, (void *) e); + } } @@ -7309,12 +7428,16 @@ static decl_node doMakeEnumField (decl_node e, nameKey_Name n) mcDebug_assert ((Indexing_GetIndice (e->enumerationF.listOfSons, e->enumerationF.noOfElements)) == f); addEnumToModule (currentModule, f); if (e->enumerationF.low == NULL) - e->enumerationF.low = f; + { + e->enumerationF.low = f; + } e->enumerationF.high = f; return addToScope (f); } else - mcMetaError_metaErrors2 ((char *) "cannot create enumeration field {%1k} as the name is already in use", 67, (char *) "{%2DMad} was declared elsewhere", 31, (unsigned char *) &n, (sizeof (n)-1), (unsigned char *) &f, (sizeof (f)-1)); + { + mcMetaError_metaErrors2 ((char *) "cannot create enumeration field {%1k} as the name is already in use", 67, (char *) "{%2DMad} was declared elsewhere", 31, (unsigned char *) &n, (sizeof (n)-1), (unsigned char *) &f, (sizeof (f)-1)); + } ReturnException ("../../gcc-versionno/gcc/gm2/mc/decl.def", 20, 1); } @@ -7338,9 +7461,15 @@ static decl_node getExpList (decl_node p, unsigned int n) static unsigned int expListLen (decl_node p) { - mcDebug_assert (p != NULL); - mcDebug_assert (decl_isExpList (p)); - return Indexing_HighIndice (p->explistF.exp); + if (p == NULL) + { + return 0; + } + else + { + mcDebug_assert (decl_isExpList (p)); + return Indexing_HighIndice (p->explistF.exp); + } } @@ -7380,11 +7509,19 @@ static void addConstToModule (decl_node m, decl_node e) { mcDebug_assert (((decl_isModule (m)) || (decl_isDef (m))) || (decl_isImp (m))); if (decl_isModule (m)) - Indexing_IncludeIndiceIntoIndex (m->moduleF.constFixup.info, (void *) e); + { + Indexing_IncludeIndiceIntoIndex (m->moduleF.constFixup.info, (void *) e); + } else if (decl_isDef (m)) - Indexing_IncludeIndiceIntoIndex (m->defF.constFixup.info, (void *) e); + { + /* avoid dangling else. */ + Indexing_IncludeIndiceIntoIndex (m->defF.constFixup.info, (void *) e); + } else if (decl_isImp (m)) - Indexing_IncludeIndiceIntoIndex (m->impF.constFixup.info, (void *) e); + { + /* avoid dangling else. */ + Indexing_IncludeIndiceIntoIndex (m->impF.constFixup.info, (void *) e); + } } @@ -7441,16 +7578,215 @@ static unsigned int isAnyType (decl_node n) /* - makeCast - + makeVal - creates a VAL (type, expression) node. +*/ + +static decl_node makeVal (decl_node params) +{ + mcDebug_assert (decl_isExpList (params)); + if ((expListLen (params)) == 2) + { + return makeBinary ((nodeT) val, getExpList (params, 1), getExpList (params, 2), getExpList (params, 1)); + } + else + { + M2RTS_HALT (-1); + } +} + + +/* + makeCast - creates a cast node TYPENAME (expr). */ static decl_node makeCast (decl_node c, decl_node p) { mcDebug_assert (decl_isExpList (p)); if ((expListLen (p)) == 1) - return makeBinary ((nodeT) cast, c, getExpList (p, 1), c); + { + return makeBinary ((nodeT) cast, c, getExpList (p, 1), c); + } else - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } +} + +static decl_node makeIntrinsicProc (nodeT k, unsigned int noArgs, decl_node p) +{ + decl_node f; + + /* + makeIntrisicProc - + */ + f = newNode (k); + f->intrinsicF.args = p; + f->intrinsicF.noArgs = noArgs; + f->intrinsicF.type = NULL; + initPair (&f->intrinsicF.intrinsicComment); + return f; +} + + +/* + makeIntrinsicUnaryType - +*/ + +static decl_node makeIntrinsicUnaryType (nodeT k, decl_node paramList, decl_node returnType) +{ + return makeUnary (k, getExpList (paramList, 1), returnType); +} + + +/* + makeIntrinsicBinaryType - +*/ + +static decl_node makeIntrinsicBinaryType (nodeT k, decl_node paramList, decl_node returnType) +{ + return makeBinary (k, getExpList (paramList, 1), getExpList (paramList, 2), returnType); +} + + +/* + checkIntrinsic - checks to see if the function call to, c, with + parameter list, n, is really an intrinic. If it + is an intrinic then an intrinic node is created + and returned. Otherwise NIL is returned. +*/ + +static decl_node checkIntrinsic (decl_node c, decl_node n) +{ + if (isAnyType (c)) + { + return makeCast (c, n); + } + else if (c == maxN) + { + /* avoid dangling else. */ + return makeIntrinsicUnaryType ((nodeT) max, n, (decl_node) NULL); + } + else if (c == minN) + { + /* avoid dangling else. */ + return makeIntrinsicUnaryType ((nodeT) min, n, (decl_node) NULL); + } + else if (c == haltN) + { + /* avoid dangling else. */ + return makeIntrinsicProc ((nodeT) halt, expListLen (n), n); + } + else if (c == valN) + { + /* avoid dangling else. */ + return makeVal (n); + } + else if (c == adrN) + { + /* avoid dangling else. */ + return makeIntrinsicUnaryType ((nodeT) adr, n, addressN); + } + else if (c == sizeN) + { + /* avoid dangling else. */ + return makeIntrinsicUnaryType ((nodeT) size, n, cardinalN); + } + else if (c == tsizeN) + { + /* avoid dangling else. */ + return makeIntrinsicUnaryType ((nodeT) tsize, n, cardinalN); + } + else if (c == floatN) + { + /* avoid dangling else. */ + return makeIntrinsicUnaryType ((nodeT) float_, n, realN); + } + else if (c == truncN) + { + /* avoid dangling else. */ + return makeIntrinsicUnaryType ((nodeT) trunc, n, integerN); + } + else if (c == ordN) + { + /* avoid dangling else. */ + return makeIntrinsicUnaryType ((nodeT) ord, n, cardinalN); + } + else if (c == chrN) + { + /* avoid dangling else. */ + return makeIntrinsicUnaryType ((nodeT) chr, n, charN); + } + else if (c == capN) + { + /* avoid dangling else. */ + return makeIntrinsicUnaryType ((nodeT) cap, n, charN); + } + else if (c == absN) + { + /* avoid dangling else. */ + return makeIntrinsicUnaryType ((nodeT) abs_, n, (decl_node) NULL); + } + else if (c == imN) + { + /* avoid dangling else. */ + return makeIntrinsicUnaryType ((nodeT) im, n, (decl_node) NULL); + } + else if (c == reN) + { + /* avoid dangling else. */ + return makeIntrinsicUnaryType ((nodeT) re, n, (decl_node) NULL); + } + else if (c == cmplxN) + { + /* avoid dangling else. */ + return makeIntrinsicBinaryType ((nodeT) cmplx, n, (decl_node) NULL); + } + else if (c == highN) + { + /* avoid dangling else. */ + return makeIntrinsicUnaryType ((nodeT) high, n, cardinalN); + } + else if (c == incN) + { + /* avoid dangling else. */ + return makeIntrinsicProc ((nodeT) inc, expListLen (n), n); + } + else if (c == decN) + { + /* avoid dangling else. */ + return makeIntrinsicProc ((nodeT) dec, expListLen (n), n); + } + else if (c == inclN) + { + /* avoid dangling else. */ + return makeIntrinsicProc ((nodeT) incl, expListLen (n), n); + } + else if (c == exclN) + { + /* avoid dangling else. */ + return makeIntrinsicProc ((nodeT) excl, expListLen (n), n); + } + else if (c == newN) + { + /* avoid dangling else. */ + return makeIntrinsicProc ((nodeT) new, 1, n); + } + else if (c == disposeN) + { + /* avoid dangling else. */ + return makeIntrinsicProc ((nodeT) dispose, 1, n); + } + else if (c == lengthN) + { + /* avoid dangling else. */ + return makeIntrinsicUnaryType ((nodeT) length, n, cardinalN); + } + else if (c == throwN) + { + /* avoid dangling else. */ + return makeIntrinsicProc ((nodeT) throw, 1, n); + } + return NULL; } @@ -7499,9 +7835,14 @@ static decl_node lookupBase (nameKey_Name n) m = symbolKey_getSymKey (baseSymbols, n); if (m == procN) - keyc_useProc (); + { + keyc_useProc (); + } else if (((m == complexN) || (m == longcomplexN)) || (m == shortcomplexN)) - keyc_useComplex (); + { + /* avoid dangling else. */ + keyc_useComplex (); + } return m; } @@ -7620,7 +7961,6 @@ static unsigned int isUnary (decl_node n) mcDebug_assert (n != NULL); switch (n->kind) { - case throw: case re: case im: case deref: @@ -7651,22 +7991,64 @@ static unsigned int isUnary (decl_node n) /* - makeUnary - create a unary expression node with, e, as the argument - and res as the return type. + isBinary - returns TRUE if, n, is an binary node. */ -static decl_node makeUnary (nodeT k, decl_node e, decl_node res) +static unsigned int isBinary (decl_node n) { - decl_node n; - - if (k == plus) - return e; - else - { + mcDebug_assert (n != NULL); + switch (n->kind) + { + case cmplx: + case and: + case or: + case equal: + case notequal: + case less: + case greater: + case greequal: + case lessequal: + case val: + case cast: + case plus: + case sub: + case div_: + case mod: + case mult: + case divide: + case in: + return TRUE; + break; + + + default: + return FALSE; + break; + } +} + + +/* + makeUnary - create a unary expression node with, e, as the argument + and res as the return type. +*/ + +static decl_node makeUnary (nodeT k, decl_node e, decl_node res) +{ + decl_node n; + + if (k == plus) + { + return e; + } + else + { Storage_ALLOCATE ((void **) &n, sizeof (_T1)); n->kind = k; switch (n->kind) { + case min: + case max: case throw: case re: case im: @@ -7714,16 +8096,25 @@ static unsigned int isLeafString (decl_node n) static DynamicStrings_String getStringContents (decl_node n) { if (decl_isConst (n)) - return getStringContents (n->constF.value); + { + return getStringContents (n->constF.value); + } else if (decl_isLiteral (n)) { + /* avoid dangling else. */ M2RTS_HALT (-1); /* --fixme-- finish this. */ return NULL; /* --fixme-- finish this. */ } else if (isString (n)) - return getString (n); + { + /* avoid dangling else. */ + return getString (n); + } else if (isConstExp (n)) - return getStringContents (n->unaryF.arg); + { + /* avoid dangling else. */ + return getStringContents (n->unaryF.arg); + } M2RTS_HALT (-1); } @@ -7755,12 +8146,20 @@ static nameKey_Name addNames (decl_node a, decl_node b) static decl_node resolveString (decl_node n) { while ((decl_isConst (n)) || (isConstExp (n))) - if (decl_isConst (n)) - n = n->constF.value; - else - n = n->unaryF.arg; + { + if (decl_isConst (n)) + { + n = n->constF.value; + } + else + { + n = n->unaryF.arg; + } + } if (n->kind == plus) - n = decl_makeString (addNames (resolveString (n->binaryF.left), resolveString (n->binaryF.right))); + { + n = decl_makeString (addNames (resolveString (n->binaryF.left), resolveString (n->binaryF.right))); + } return n; } @@ -7790,16 +8189,18 @@ static decl_node foldBinary (nodeT k, decl_node l, decl_node r, decl_node res) /* - makeBinary - create a binary node with left/right/result type: l, r and res. + makeBinary - create a binary node with left/right/result type: l, r and resultType. */ -static decl_node makeBinary (nodeT k, decl_node l, decl_node r, decl_node res) +static decl_node makeBinary (nodeT k, decl_node l, decl_node r, decl_node resultType) { decl_node n; - n = foldBinary (k, l, r, res); + n = foldBinary (k, l, r, resultType); if (n == NULL) - n = doMakeBinary (k, l, r, res); + { + n = doMakeBinary (k, l, r, resultType); + } return n; } @@ -8013,7 +8414,9 @@ static unsigned int isOrdinal (decl_node n) static decl_node mixTypes (decl_node a, decl_node b) { if ((a == addressN) || (b == addressN)) - return addressN; + { + return addressN; + } return a; } @@ -8025,7 +8428,9 @@ static decl_node mixTypes (decl_node a, decl_node b) static decl_node doSetExprType (decl_node *t, decl_node n) { if ((*t) == NULL) - (*t) = n; + { + (*t) = n; + } return (*t); } @@ -8037,17 +8442,27 @@ static decl_node doSetExprType (decl_node *t, decl_node n) static decl_node getMaxMinType (decl_node n) { if ((decl_isVar (n)) || (decl_isConst (n))) - return decl_getType (n); + { + return decl_getType (n); + } else if (isConstExp (n)) { + /* avoid dangling else. */ n = getExprType (n->unaryF.arg); if (n == bitsetN) - return ztypeN; + { + return ztypeN; + } else - return n; + { + return n; + } } else - return n; + { + /* avoid dangling else. */ + return n; + } } @@ -8058,82 +8473,7 @@ static decl_node getMaxMinType (decl_node n) static decl_node doGetFuncType (decl_node n) { mcDebug_assert (isFuncCall (n)); - if (isIntrinsic (n)) - switch (n->funccallF.function->kind) - { - case max: - case min: - return getMaxMinType (getExpList (n->funccallF.args, 1)); - break; - - case cast: - case val: - return getExpList (n->funccallF.args, 1); - break; - - case adr: - return addressN; - break; - - case size: - case tsize: - case float_: - return realN; - break; - - case trunc: - return integerN; - break; - - case ord: - return cardinalN; - break; - - case chr: - return charN; - break; - - case cap: - return charN; - break; - - case re: - case im: - return realN; - break; - - case cmplx: - return complexN; - break; - - case abs_: - return getExprType (getExpList (n->funccallF.args, 1)); - break; - - case high: - return cardinalN; - break; - - case halt: - case inc: - case dec: - case incl: - case excl: - case new: - case dispose: - M2RTS_HALT (-1); - break; - - case length: - return cardinalN; - break; - - - default: - CaseException ("../../gcc-versionno/gcc/gm2/mc/decl.def", 20, 1); - } - else - return doSetExprType (&n->funccallF.type, decl_getType (n->funccallF.function)); + return doSetExprType (&n->funccallF.type, decl_getType (n->funccallF.function)); } @@ -8145,16 +8485,22 @@ static decl_node doGetExprType (decl_node n) { switch (n->kind) { + case max: + case min: + return getMaxMinType (n->unaryF.arg); + break; + + case cast: + case val: + return doSetExprType (&n->binaryF.resultType, n->binaryF.left); + break; + case halt: case new: case dispose: return NULL; break; - case length: - return cardinalN; - break; - case inc: case dec: case incl: @@ -8372,18 +8718,13 @@ static decl_node doGetExprType (decl_node n) M2RTS_HALT (-1); break; - case cast: - case val: - /* expressions. */ - return doSetExprType (&n->binaryF.resultType, n->binaryF.left); - break; - case plus: case sub: case div_: case mod: case mult: case divide: + /* expressions. */ return doSetExprType (&n->binaryF.resultType, mixTypes (getExprType (n->binaryF.left), getExprType (n->binaryF.right))); break; @@ -8489,10 +8830,14 @@ static decl_node getExprType (decl_node n) decl_node t; if (((isFuncCall (n)) && ((decl_getType (n)) != NULL)) && (decl_isProcType (decl_skipType (decl_getType (n))))) - return decl_getType (decl_skipType (decl_getType (n))); + { + return decl_getType (decl_skipType (decl_getType (n))); + } t = decl_getType (n); if (t == NULL) - t = doGetExprType (n); + { + t = doGetExprType (n); + } return t; } @@ -8507,9 +8852,13 @@ static void openOutput (void) s = mcOptions_getOutputFile (); if (DynamicStrings_EqualArray (s, (char *) "-", 1)) - outputFile = FIO_StdOut; + { + outputFile = FIO_StdOut; + } else - outputFile = SFIO_OpenToWrite (s); + { + outputFile = SFIO_OpenToWrite (s); + } mcStream_setDest (outputFile); } @@ -8525,7 +8874,9 @@ static void closeOutput (void) s = mcOptions_getOutputFile (); outputFile = mcStream_combine (); if (! (DynamicStrings_EqualArray (s, (char *) "-", 1))) - FIO_Close (outputFile); + { + FIO_Close (outputFile); + } } @@ -8569,9 +8920,12 @@ static void doIncludeC (decl_node n) } /* no include in this case. */ else if (mcOptions_getExtendedOpaque ()) - {} /* empty. */ + { + /* avoid dangling else. */ + } else if (decl_isDef (n)) { + /* avoid dangling else. */ mcPretty_print (doP, (char *) "# include \"", 13); mcPretty_prints (doP, mcOptions_getHPrefix ()); mcPretty_prints (doP, s); @@ -8624,7 +8978,9 @@ static DynamicStrings_String getFQstring (decl_node n) DynamicStrings_String s; if (((! (decl_isExported (n))) || (mcOptions_getIgnoreFQ ())) || (isDefForC (decl_getScope (n)))) - return DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n))); + { + return DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n))); + } else { i = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n))); @@ -8644,7 +9000,9 @@ static DynamicStrings_String getFQDstring (decl_node n, unsigned int scopes) DynamicStrings_String s; if ((! (decl_isExported (n))) || (mcOptions_getIgnoreFQ ())) - return DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (getDName (n, scopes))); + { + return DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (getDName (n, scopes))); + } else { /* we assume a qualified name will never conflict. */ @@ -8662,9 +9020,13 @@ static DynamicStrings_String getFQDstring (decl_node n, unsigned int scopes) static DynamicStrings_String getString (decl_node n) { if ((decl_getSymName (n)) == nameKey_NulName) - return DynamicStrings_InitString ((char *) "", 0); + { + return DynamicStrings_InitString ((char *) "", 0); + } else - return DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n))); + { + return DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n))); + } } @@ -8773,6 +9135,10 @@ static unsigned int needsParen (decl_node n) return TRUE; break; + case abs_: + return FALSE; + break; + case plus: case sub: case div_: @@ -8819,6 +9185,9 @@ static unsigned int needsParen (decl_node n) return FALSE; break; + case loc: + case byte: + case word: case type: case char_: case cardinal: @@ -8871,10 +9240,14 @@ static void doUnary (mcPretty_pretty p, char *op_, unsigned int _op_high, decl_n memcpy (op, op_, _op_high+1); if (l) - mcPretty_setNeedSpace (p); + { + mcPretty_setNeedSpace (p); + } mcPretty_print (p, (char *) op, _op_high); if (r) - mcPretty_setNeedSpace (p); + { + mcPretty_setNeedSpace (p); + } if (needsParen (expr)) { outText (p, (char *) "(", 1); @@ -8882,7 +9255,9 @@ static void doUnary (mcPretty_pretty p, char *op_, unsigned int _op_high, decl_n outText (p, (char *) ")", 1); } else - doExprC (p, expr); + { + doExprC (p, expr); + } } @@ -8899,7 +9274,9 @@ static void doSetSub (mcPretty_pretty p, decl_node left, decl_node right) outText (p, (char *) ")", 1); } else - doExprC (p, left); + { + doExprC (p, left); + } mcPretty_setNeedSpace (p); outText (p, (char *) "&", 1); mcPretty_setNeedSpace (p); @@ -8930,51 +9307,55 @@ static void doPolyBinary (mcPretty_pretty p, nodeT op, decl_node left, decl_node lt = decl_skipType (getExprType (left)); rt = decl_skipType (getExprType (right)); if (((lt != NULL) && ((decl_isSet (lt)) || (isBitset (lt)))) || ((rt != NULL) && ((decl_isSet (rt)) || (isBitset (rt))))) - switch (op) - { - case plus: - doBinary (p, (char *) "|", 1, left, right, l, r, FALSE); - break; + { + switch (op) + { + case plus: + doBinary (p, (char *) "|", 1, left, right, l, r, FALSE); + break; - case sub: - doSetSub (p, left, right); - break; + case sub: + doSetSub (p, left, right); + break; - case mult: - doBinary (p, (char *) "&", 1, left, right, l, r, FALSE); - break; + case mult: + doBinary (p, (char *) "&", 1, left, right, l, r, FALSE); + break; - case divide: - doBinary (p, (char *) "^", 1, left, right, l, r, FALSE); - break; + case divide: + doBinary (p, (char *) "^", 1, left, right, l, r, FALSE); + break; - default: - CaseException ("../../gcc-versionno/gcc/gm2/mc/decl.def", 20, 1); - } + default: + CaseException ("../../gcc-versionno/gcc/gm2/mc/decl.def", 20, 1); + } + } else - switch (op) - { - case plus: - doBinary (p, (char *) "+", 1, left, right, l, r, FALSE); - break; + { + switch (op) + { + case plus: + doBinary (p, (char *) "+", 1, left, right, l, r, FALSE); + break; - case sub: - doBinary (p, (char *) "-", 1, left, right, l, r, FALSE); - break; + case sub: + doBinary (p, (char *) "-", 1, left, right, l, r, FALSE); + break; - case mult: - doBinary (p, (char *) "*", 1, left, right, l, r, FALSE); - break; + case mult: + doBinary (p, (char *) "*", 1, left, right, l, r, FALSE); + break; - case divide: - doBinary (p, (char *) "/", 1, left, right, l, r, FALSE); - break; + case divide: + doBinary (p, (char *) "/", 1, left, right, l, r, FALSE); + break; - default: - CaseException ("../../gcc-versionno/gcc/gm2/mc/decl.def", 20, 1); - } + default: + CaseException ("../../gcc-versionno/gcc/gm2/mc/decl.def", 20, 1); + } + } } @@ -8996,12 +9377,18 @@ static void doBinary (mcPretty_pretty p, char *op_, unsigned int _op_high, decl_ outText (p, (char *) ")", 1); } else - doExprCup (p, left, unpackProc); + { + doExprCup (p, left, unpackProc); + } if (l) - mcPretty_setNeedSpace (p); + { + mcPretty_setNeedSpace (p); + } outText (p, (char *) op, _op_high); if (r) - mcPretty_setNeedSpace (p); + { + mcPretty_setNeedSpace (p); + } if (needsParen (right)) { outText (p, (char *) "(", 1); @@ -9009,7 +9396,9 @@ static void doBinary (mcPretty_pretty p, char *op_, unsigned int _op_high, decl_ outText (p, (char *) ")", 1); } else - doExprCup (p, right, unpackProc); + { + doExprCup (p, right, unpackProc); + } } @@ -9282,10 +9671,14 @@ static void doPreBinary (mcPretty_pretty p, char *op_, unsigned int _op_high, de memcpy (op, op_, _op_high+1); if (l) - mcPretty_setNeedSpace (p); + { + mcPretty_setNeedSpace (p); + } outText (p, (char *) op, _op_high); if (r) - mcPretty_setNeedSpace (p); + { + mcPretty_setNeedSpace (p); + } outText (p, (char *) "(", 1); doExprC (p, left); outText (p, (char *) ",", 1); @@ -9322,7 +9715,9 @@ static void doEnumerationField (mcPretty_pretty p, decl_node n) static unsigned int isZero (decl_node n) { if (isConstExp (n)) - return isZero (n->unaryF.arg); + { + return isZero (n->unaryF.arg); + } return (decl_getSymName (n)) == (nameKey_makeKey ((char *) "0", 1)); } @@ -9341,7 +9736,9 @@ static void doArrayRef (mcPretty_pretty p, decl_node n) mcDebug_assert (isArrayRef (n)); t = decl_skipType (decl_getType (n->arrayrefF.array)); if (decl_isUnbounded (t)) - outTextN (p, decl_getSymName (n->arrayrefF.array)); + { + outTextN (p, decl_getSymName (n->arrayrefF.array)); + } else { doExprC (p, n->arrayrefF.array); @@ -9355,7 +9752,9 @@ static void doArrayRef (mcPretty_pretty p, decl_node n) { doExprC (p, getExpList (n->arrayrefF.index, i)); if (decl_isUnbounded (t)) - mcDebug_assert (c == 1); + { + mcDebug_assert (c == 1); + } else { doSubtractC (p, getMin (t->arrayF.subr)); @@ -9445,7 +9844,9 @@ static void doSetValueC (mcPretty_pretty p, decl_node n) mcPretty_setNeedSpace (p); } if ((Indexing_HighIndice (n->setvalueF.values)) == 0) - outText (p, (char *) "0", 1); + { + outText (p, (char *) "0", 1); + } else { i = Indexing_LowIndice (n->setvalueF.values); @@ -9485,14 +9886,20 @@ static decl_node getSetLow (decl_node n) decl_node type; if ((decl_getType (n)) == NULL) - return decl_makeLiteralInt (nameKey_makeKey ((char *) "0", 1)); + { + return decl_makeLiteralInt (nameKey_makeKey ((char *) "0", 1)); + } else { type = decl_skipType (decl_getType (n)); if (decl_isSet (type)) - return getMin (decl_skipType (decl_getType (type))); + { + return getMin (decl_skipType (decl_getType (type))); + } else - return decl_makeLiteralInt (nameKey_makeKey ((char *) "0", 1)); + { + return decl_makeLiteralInt (nameKey_makeKey ((char *) "0", 1)); + } } } @@ -9533,20 +9940,15 @@ static void doInC (mcPretty_pretty p, decl_node l, decl_node r) static void doThrowC (mcPretty_pretty p, decl_node n) { - mcDebug_assert (isFuncCall (n)); - if (n->funccallF.args == NULL) - M2RTS_HALT (-1); - else - if ((expListLen (n->funccallF.args)) == 1) - { - outText (p, (char *) "throw", 5); - mcPretty_setNeedSpace (p); - outText (p, (char *) "(", 1); - doExprC (p, getExpList (n->funccallF.args, 1)); - outText (p, (char *) ")", 1); - } - else - M2RTS_HALT (-1); /* metaError0 ('expecting a single parameter to THROW') */ + mcDebug_assert (isIntrinsic (n)); + outText (p, (char *) "throw", 5); + mcPretty_setNeedSpace (p); + outText (p, (char *) "(", 1); + if ((expListLen (n->intrinsicF.args)) == 1) + { + doExprC (p, getExpList (n->intrinsicF.args, 1)); + } + outText (p, (char *) ")", 1); } @@ -9619,46 +10021,73 @@ static void doExprC (mcPretty_pretty p, decl_node n) doUnary (p, (char *) "!", 1, n->unaryF.arg, n->unaryF.resultType, FALSE, TRUE); break; - case adr: - doUnary (p, (char *) "&", 1, n->unaryF.arg, n->unaryF.resultType, TRUE, FALSE); + case val: + doValC (p, n); break; - case size: - doUnary (p, (char *) "sizeof", 6, n->unaryF.arg, n->unaryF.resultType, TRUE, TRUE); + case adr: + doAdrC (p, n); break; + case size: case tsize: - doUnary (p, (char *) "sizeof", 6, n->unaryF.arg, n->unaryF.resultType, TRUE, TRUE); + doSizeC (p, n); break; - case trunc: - doUnary (p, (char *) "TRUNC", 5, n->unaryF.arg, n->unaryF.resultType, TRUE, TRUE); + case float_: + doConvertC (p, n, (char *) "(double)", 8); break; - case float_: - doUnary (p, (char *) "FLOAT", 5, n->unaryF.arg, n->unaryF.resultType, TRUE, TRUE); + case trunc: + doConvertC (p, n, (char *) "(int)", 5); break; case ord: - doUnary (p, (char *) "ORD", 3, n->unaryF.arg, n->unaryF.resultType, TRUE, TRUE); + doConvertC (p, n, (char *) "(unsigned int)", 14); break; case chr: - doUnary (p, (char *) "CHR", 3, n->unaryF.arg, n->unaryF.resultType, TRUE, TRUE); + doConvertC (p, n, (char *) "(char)", 6); break; case cap: - doUnary (p, (char *) "CAP", 3, n->unaryF.arg, n->unaryF.resultType, TRUE, TRUE); + doCapC (p, n); + break; + + case abs_: + doAbsC (p, n); break; case high: - doUnary (p, (char *) "HIGH", 4, n->unaryF.arg, n->unaryF.resultType, TRUE, TRUE); + doFuncHighC (p, n->unaryF.arg); + break; + + case length: + doLengthC (p, n); + break; + + case min: + doMinC (p, n); + break; + + case max: + doMaxC (p, n); + break; + + case throw: + doThrowC (p, n); break; case re: + doReC (p, n); + break; + case im: + doImC (p, n); + break; + case cmplx: - M2RTS_HALT (-1); /* should all be function calls. */ + doCmplx (p, n); break; case deref: @@ -9701,10 +10130,6 @@ static void doExprC (mcPretty_pretty p, decl_node n) doCastC (p, n->binaryF.left, n->binaryF.right); break; - case val: - doPreBinary (p, (char *) "VAL", 3, n->binaryF.left, n->binaryF.right, TRUE, TRUE); - break; - case plus: doPolyBinary (p, (nodeT) plus, n->binaryF.left, n->binaryF.right, FALSE, FALSE); break; @@ -9757,14 +10182,6 @@ static void doExprC (mcPretty_pretty p, decl_node n) doStringC (p, n); break; - case max: - doUnary (p, (char *) "MAX", 3, n->unaryF.arg, n->unaryF.resultType, TRUE, TRUE); - break; - - case min: - doUnary (p, (char *) "MIN", 3, n->unaryF.arg, n->unaryF.resultType, TRUE, TRUE); - break; - case var: doVar (p, n); break; @@ -9845,7 +10262,9 @@ static void doExprCup (mcPretty_pretty p, decl_node n, unsigned int unpackProc) { t = decl_skipType (getExprType (n)); if ((t != NULL) && (isAProcType (t))) - outText (p, (char *) ".proc", 5); + { + outText (p, (char *) ".proc", 5); + } } } @@ -10048,7 +10467,9 @@ static void doVar (mcPretty_pretty p, decl_node n) outText (p, (char *) ")", 1); } else - doFQDNameC (p, n, TRUE); + { + doFQDNameC (p, n, TRUE); + } } @@ -10068,18 +10489,22 @@ static void doLiteralC (mcPretty_pretty p, decl_node n) { s = DynamicStrings_Slice (DynamicStrings_Mark (s), 0, -1); if ((DynamicStrings_char (s, 0)) != '0') - s = DynamicStrings_ConCat (DynamicStrings_InitString ((char *) "0", 1), DynamicStrings_Mark (s)); + { + s = DynamicStrings_ConCat (DynamicStrings_InitString ((char *) "0", 1), DynamicStrings_Mark (s)); + } } outText (p, (char *) "(char)", 6); mcPretty_setNeedSpace (p); } else if ((DynamicStrings_char (s, -1)) == 'H') { + /* avoid dangling else. */ outText (p, (char *) "0x", 2); s = DynamicStrings_Slice (DynamicStrings_Mark (s), 0, -1); } else if ((DynamicStrings_char (s, -1)) == 'B') { + /* avoid dangling else. */ outText (p, (char *) "0", 1); s = DynamicStrings_Slice (DynamicStrings_Mark (s), 0, -1); } @@ -10104,7 +10529,9 @@ static void doLiteral (mcPretty_pretty p, decl_node n) { s = DynamicStrings_Slice (DynamicStrings_Mark (s), 0, -1); if ((DynamicStrings_char (s, 0)) != '0') - s = DynamicStrings_ConCat (DynamicStrings_InitString ((char *) "0", 1), DynamicStrings_Mark (s)); + { + s = DynamicStrings_ConCat (DynamicStrings_InitString ((char *) "0", 1), DynamicStrings_Mark (s)); + } } outText (p, (char *) "(char)", 6); mcPretty_setNeedSpace (p); @@ -10179,11 +10606,15 @@ static DynamicStrings_String replaceChar (DynamicStrings_String s, char ch, char } else if (i > 0) { + /* avoid dangling else. */ s = DynamicStrings_ConCat (DynamicStrings_ConCat (DynamicStrings_Slice (s, 0, i), DynamicStrings_Mark (DynamicStrings_InitString ((char *) a, _a_high))), DynamicStrings_Slice (s, i+1, 0)); i += StrLib_StrLen ((char *) a, _a_high); } else - return s; + { + /* avoid dangling else. */ + return s; + } } ReturnException ("../../gcc-versionno/gcc/gm2/mc/decl.def", 20, 1); } @@ -10236,7 +10667,9 @@ static unsigned int countChar (DynamicStrings_String s, char ch) c += 1; } else - return c; + { + return c; + } } ReturnException ("../../gcc-versionno/gcc/gm2/mc/decl.def", 20, 1); } @@ -10396,6 +10829,7 @@ static mcPretty_pretty outKm2 (mcPretty_pretty p, char *a_, unsigned int _a_high } else if (StrLib_StrEqual ((char *) a, _a_high, (char *) "END", 3)) { + /* avoid dangling else. */ p = mcPretty_popPretty (p); outText (p, (char *) a, _a_high); p = mcPretty_popPretty (p); @@ -10422,7 +10856,9 @@ static mcPretty_pretty outKc (mcPretty_pretty p, char *a_, unsigned int _a_high) s = DynamicStrings_InitString ((char *) a, _a_high); i = DynamicStrings_Index (s, '\\', 0); if (i == -1) - t = NULL; + { + t = NULL; + } else { t = DynamicStrings_Slice (s, i, 0); @@ -10439,6 +10875,7 @@ static mcPretty_pretty outKc (mcPretty_pretty p, char *a_, unsigned int _a_high) } else if ((DynamicStrings_char (s, 0)) == '}') { + /* avoid dangling else. */ p = mcPretty_popPretty (p); outTextS (p, s); p = mcPretty_popPretty (p); @@ -10457,7 +10894,9 @@ static mcPretty_pretty outKc (mcPretty_pretty p, char *a_, unsigned int _a_high) static void outTextS (mcPretty_pretty p, DynamicStrings_String s) { if (s != NULL) - mcPretty_prints (p, s); + { + mcPretty_prints (p, s); + } } @@ -10498,11 +10937,17 @@ static void doTypeAliasC (mcPretty_pretty p, decl_node n, decl_node *m) mcPretty_print (p, (char *) "typedef", 7); mcPretty_setNeedSpace (p); if ((decl_isTypeHidden (n)) && ((decl_isDef (decl_getMainModule ())) || ((decl_getScope (n)) != (decl_getMainModule ())))) - outText (p, (char *) "void *", 6); + { + outText (p, (char *) "void *", 6); + } else - doTypeC (p, decl_getType (n), m); + { + doTypeC (p, decl_getType (n), m); + } if ((*m) != NULL) - doFQNameC (p, (*m)); + { + doFQNameC (p, (*m)); + } mcPretty_print (p, (char *) ";\\n\\n", 5); } @@ -10557,7 +11002,9 @@ static void doNamesC (mcPretty_pretty p, nameKey_Name n) static void doNameC (mcPretty_pretty p, decl_node n) { if ((n != NULL) && ((decl_getSymName (n)) != nameKey_NulName)) - doNamesC (p, decl_getSymName (n)); + { + doNamesC (p, decl_getSymName (n)); + } } @@ -10580,13 +11027,17 @@ static nameKey_Name doCname (nameKey_Name n, cnameT *c, unsigned int scopes) DynamicStrings_String s; if ((*c).init) - return (*c).name; + { + return (*c).name; + } else { (*c).init = TRUE; s = keyc_cname (n, scopes); if (s == NULL) - (*c).name = n; + { + (*c).name = n; + } else { (*c).name = nameKey_makekey (DynamicStrings_string (s)); @@ -10639,7 +11090,9 @@ static nameKey_Name getDName (decl_node n, unsigned int scopes) static void doDNameC (mcPretty_pretty p, decl_node n, unsigned int scopes) { if ((n != NULL) && ((decl_getSymName (n)) != nameKey_NulName)) - doNamesC (p, getDName (n, scopes)); + { + doNamesC (p, getDName (n, scopes)); + } } @@ -10729,9 +11182,13 @@ static decl_node getParameterVariable (decl_node n, nameKey_Name m) mcDebug_assert ((decl_isParam (n)) || (decl_isVarParam (n))); if (decl_isParam (n)) - p = n->paramF.scope; + { + p = n->paramF.scope; + } else - p = n->varparamF.scope; + { + p = n->varparamF.scope; + } mcDebug_assert (decl_isProcedure (p)); return decl_lookupInScope (p, m); } @@ -10790,16 +11247,26 @@ static void doParamC (mcPretty_pretty p, decl_node n) doTypeNameC (p, ptype); i = wlists_getItemFromList (l, c); if ((decl_isArray (ptype)) && (decl_isUnbounded (ptype))) - mcPretty_noSpace (p); + { + mcPretty_noSpace (p); + } else - mcPretty_setNeedSpace (p); + { + mcPretty_setNeedSpace (p); + } v = getParameterVariable (n, i); if (v == NULL) - doNamesC (p, keyc_cnamen (i, TRUE)); + { + doNamesC (p, keyc_cnamen (i, TRUE)); + } else - doFQDNameC (p, v, TRUE); + { + doFQDNameC (p, v, TRUE); + } if ((decl_isArray (ptype)) && (decl_isUnbounded (ptype))) - outText (p, (char *) "_", 1); + { + outText (p, (char *) "_", 1); + } doHighC (p, ptype, i); if (c < t) { @@ -10850,7 +11317,9 @@ static void doVarParamC (mcPretty_pretty p, decl_node n) mcDebug_assert (isIdentList (n->varparamF.namelist)); l = n->varparamF.namelist->identlistF.names; if (l == NULL) - doTypeNameC (p, ptype); + { + doTypeNameC (p, ptype); + } else { t = wlists_noOfItemsInList (l); @@ -10866,9 +11335,13 @@ static void doVarParamC (mcPretty_pretty p, decl_node n) i = wlists_getItemFromList (l, c); v = getParameterVariable (n, i); if (v == NULL) - doNamesC (p, keyc_cnamen (i, TRUE)); + { + doNamesC (p, keyc_cnamen (i, TRUE)); + } else - doFQDNameC (p, v, TRUE); + { + doFQDNameC (p, v, TRUE); + } doHighC (p, ptype, i); if (c < t) { @@ -10915,13 +11388,24 @@ static void doOptargC (mcPretty_pretty p, decl_node n) static void doParameterC (mcPretty_pretty p, decl_node n) { if (decl_isParam (n)) - doParamC (p, n); + { + doParamC (p, n); + } else if (decl_isVarParam (n)) - doVarParamC (p, n); + { + /* avoid dangling else. */ + doVarParamC (p, n); + } else if (decl_isVarargs (n)) - mcPretty_print (p, (char *) "...", 3); + { + /* avoid dangling else. */ + mcPretty_print (p, (char *) "...", 3); + } else if (decl_isOptarg (n)) - doOptargC (p, n); + { + /* avoid dangling else. */ + doOptargC (p, n); + } } @@ -10949,19 +11433,25 @@ static void doTypesC (decl_node n) { m = decl_getType (n); if (decl_isProcType (m)) - doProcTypeC (doP, n, m); + { + doProcTypeC (doP, n, m); + } else if ((decl_isType (m)) || (decl_isPointer (m))) { + /* avoid dangling else. */ outText (doP, (char *) "typedef", 7); mcPretty_setNeedSpace (doP); doTypeC (doP, m, &m); if (decl_isType (m)) - mcPretty_setNeedSpace (doP); + { + mcPretty_setNeedSpace (doP); + } doTypeNameC (doP, n); outText (doP, (char *) ";\\n\\n", 5); } else if (decl_isEnumeration (m)) { + /* avoid dangling else. */ outText (doP, (char *) "typedef", 7); mcPretty_setNeedSpace (doP); doTypeC (doP, m, &m); @@ -10971,11 +11461,14 @@ static void doTypesC (decl_node n) } else { + /* avoid dangling else. */ outText (doP, (char *) "typedef", 7); mcPretty_setNeedSpace (doP); doTypeC (doP, m, &m); if (decl_isType (m)) - mcPretty_setNeedSpace (doP); + { + mcPretty_setNeedSpace (doP); + } doTypeNameC (doP, n); outText (doP, (char *) ";\\n\\n", 5); } @@ -10995,11 +11488,19 @@ static void doCompletePartialC (decl_node n) { m = decl_getType (n); if (decl_isRecord (m)) - doCompletePartialRecord (doP, n, m); + { + doCompletePartialRecord (doP, n, m); + } else if (decl_isArray (m)) - doCompletePartialArray (doP, n, m); + { + /* avoid dangling else. */ + doCompletePartialArray (doP, n, m); + } else if (decl_isProcType (m)) - doCompletePartialProcType (doP, n, m); + { + /* avoid dangling else. */ + doCompletePartialProcType (doP, n, m); + } } } @@ -11039,11 +11540,15 @@ static void doCompletePartialRecord (mcPretty_pretty p, decl_node t, decl_node r } else if (decl_isVarient (f)) { + /* avoid dangling else. */ doVarientC (p, f); outText (p, (char *) ";\\n", 3); } else if (decl_isVarientField (f)) - doVarientFieldC (p, f); + { + /* avoid dangling else. */ + doVarientFieldC (p, f); + } i += 1; } p = outKc (p, (char *) "};\\n\\n", 6); @@ -11094,56 +11599,73 @@ static decl_node lookupConst (decl_node type, nameKey_Name n) static decl_node doMin (decl_node n) { if (n == booleanN) - return falseN; + { + return falseN; + } else if (n == integerN) { + /* avoid dangling else. */ keyc_useIntMin (); return lookupConst (integerN, nameKey_makeKey ((char *) "INT_MIN", 7)); } else if (n == cardinalN) { + /* avoid dangling else. */ keyc_useUIntMin (); return lookupConst (cardinalN, nameKey_makeKey ((char *) "UINT_MIN", 8)); } else if (n == longintN) { + /* avoid dangling else. */ keyc_useLongMin (); return lookupConst (longintN, nameKey_makeKey ((char *) "LONG_MIN", 8)); } else if (n == longcardN) { + /* avoid dangling else. */ keyc_useULongMin (); return lookupConst (longcardN, nameKey_makeKey ((char *) "LONG_MIN", 8)); } else if (n == charN) { + /* avoid dangling else. */ keyc_useCharMin (); return lookupConst (charN, nameKey_makeKey ((char *) "CHAR_MIN", 8)); } else if (n == bitsetN) { + /* avoid dangling else. */ mcDebug_assert (decl_isSubrange (bitnumN)); return bitnumN->subrangeF.low; } else if (n == locN) { + /* avoid dangling else. */ keyc_useUCharMin (); return lookupConst (locN, nameKey_makeKey ((char *) "UCHAR_MIN", 9)); } else if (n == byteN) { + /* avoid dangling else. */ keyc_useUCharMin (); return lookupConst (byteN, nameKey_makeKey ((char *) "UCHAR_MIN", 9)); } else if (n == wordN) { + /* avoid dangling else. */ keyc_useUIntMin (); return lookupConst (wordN, nameKey_makeKey ((char *) "UCHAR_MIN", 9)); } else if (n == addressN) - return lookupConst (addressN, nameKey_makeKey ((char *) "((void *) 0)", 12)); + { + /* avoid dangling else. */ + return lookupConst (addressN, nameKey_makeKey ((char *) "((void *) 0)", 12)); + } else - M2RTS_HALT (-1); /* finish the cacading elsif statement. */ + { + /* avoid dangling else. */ + M2RTS_HALT (-1); /* finish the cacading elsif statement. */ + } } @@ -11154,59 +11676,74 @@ static decl_node doMin (decl_node n) static decl_node doMax (decl_node n) { if (n == booleanN) - return trueN; + { + return trueN; + } else if (n == integerN) { + /* avoid dangling else. */ keyc_useIntMax (); return lookupConst (integerN, nameKey_makeKey ((char *) "INT_MAX", 7)); } else if (n == cardinalN) { + /* avoid dangling else. */ keyc_useUIntMax (); return lookupConst (cardinalN, nameKey_makeKey ((char *) "UINT_MAX", 8)); } else if (n == longintN) { + /* avoid dangling else. */ keyc_useLongMax (); return lookupConst (longintN, nameKey_makeKey ((char *) "LONG_MAX", 8)); } else if (n == longcardN) { + /* avoid dangling else. */ keyc_useULongMax (); return lookupConst (longcardN, nameKey_makeKey ((char *) "ULONG_MAX", 9)); } else if (n == charN) { + /* avoid dangling else. */ keyc_useCharMax (); return lookupConst (charN, nameKey_makeKey ((char *) "CHAR_MAX", 8)); } else if (n == bitsetN) { + /* avoid dangling else. */ mcDebug_assert (decl_isSubrange (bitnumN)); return bitnumN->subrangeF.high; } else if (n == locN) { + /* avoid dangling else. */ keyc_useUCharMax (); return lookupConst (locN, nameKey_makeKey ((char *) "UCHAR_MAX", 9)); } else if (n == byteN) { + /* avoid dangling else. */ keyc_useUCharMax (); return lookupConst (byteN, nameKey_makeKey ((char *) "UCHAR_MAX", 9)); } else if (n == wordN) { + /* avoid dangling else. */ keyc_useUIntMax (); return lookupConst (wordN, nameKey_makeKey ((char *) "UINT_MAX", 8)); } else if (n == addressN) { + /* avoid dangling else. */ mcMetaError_metaError1 ((char *) "trying to obtain MAX ({%1ad}) is illegal", 40, (unsigned char *) &n, (sizeof (n)-1)); return NULL; } else - M2RTS_HALT (-1); /* finish the cacading elsif statement. */ + { + /* avoid dangling else. */ + M2RTS_HALT (-1); /* finish the cacading elsif statement. */ + } } @@ -11218,11 +11755,17 @@ static decl_node getMax (decl_node n) { n = decl_skipType (n); if (decl_isSubrange (n)) - return n->subrangeF.high; + { + return n->subrangeF.high; + } else if (decl_isEnumeration (n)) - return n->enumerationF.high; + { + /* avoid dangling else. */ + return n->enumerationF.high; + } else { + /* avoid dangling else. */ mcDebug_assert (isOrdinal (n)); return doMax (n); } @@ -11237,11 +11780,17 @@ static decl_node getMin (decl_node n) { n = decl_skipType (n); if (decl_isSubrange (n)) - return n->subrangeF.low; + { + return n->subrangeF.low; + } else if (decl_isEnumeration (n)) - return n->enumerationF.low; + { + /* avoid dangling else. */ + return n->enumerationF.low; + } else { + /* avoid dangling else. */ mcDebug_assert (isOrdinal (n)); return doMin (n); } @@ -11282,6 +11831,7 @@ static void doSubrC (mcPretty_pretty p, decl_node s) } else if (decl_isEnumeration (s)) { + /* avoid dangling else. */ low = getMin (s); high = getMax (s); doExprC (p, high); @@ -11290,9 +11840,12 @@ static void doSubrC (mcPretty_pretty p, decl_node s) } else { + /* avoid dangling else. */ mcDebug_assert (decl_isSubrange (s)); if ((s->subrangeF.high == NULL) || (s->subrangeF.low == NULL)) - doSubrC (p, decl_getType (s)); + { + doSubrC (p, decl_getType (s)); + } else { doExprC (p, s->subrangeF.high); @@ -11338,7 +11891,9 @@ static void doCompletePartialProcType (mcPretty_pretty p, decl_node t, decl_node i += 1; } if (h == 0) - outText (p, (char *) "void", 4); + { + outText (p, (char *) "void", 4); + } outText (p, (char *) ");\\n", 4); outText (p, (char *) "struct", 6); mcPretty_setNeedSpace (p); @@ -11581,7 +12136,9 @@ static void doArrayC (mcPretty_pretty p, decl_node n) mcPretty_setNeedSpace (p); outText (p, (char *) "array[", 6); if (isZero (getMin (s))) - doExprC (p, getMax (s)); + { + doExprC (p, getMax (s)); + } else { doExprC (p, getMax (s)); @@ -11660,15 +12217,21 @@ static void doVarientFieldC (mcPretty_pretty p, decl_node n) } else if (decl_isVarient (q)) { + /* avoid dangling else. */ doVarientC (p, q); outText (p, (char *) ";\\n", 3); } else - M2RTS_HALT (-1); + { + /* avoid dangling else. */ + M2RTS_HALT (-1); + } i += 1; } if (! n->varientfieldF.simple) - p = outKc (p, (char *) "};\\n", 4); + { + p = outKc (p, (char *) "};\\n", 4); + } } @@ -11692,10 +12255,16 @@ static void doVarientC (mcPretty_pretty p, decl_node n) outText (p, (char *) "; /* case tag */\\n", 19); } else if (decl_isVarientField (n->varientF.tag)) - /* doVarientFieldC (p, n^.varientF.tag) */ - M2RTS_HALT (-1); + { + /* avoid dangling else. */ + /* doVarientFieldC (p, n^.varientF.tag) */ + M2RTS_HALT (-1); + } else - M2RTS_HALT (-1); + { + /* avoid dangling else. */ + M2RTS_HALT (-1); + } } outText (p, (char *) "union", 5); mcPretty_setNeedSpace (p); @@ -11715,9 +12284,15 @@ static void doVarientC (mcPretty_pretty p, decl_node n) } } else if (decl_isVarientField (q)) - doVarientFieldC (p, q); + { + /* avoid dangling else. */ + doVarientFieldC (p, q); + } else - M2RTS_HALT (-1); + { + /* avoid dangling else. */ + M2RTS_HALT (-1); + } i += 1; } p = outKc (p, (char *) "}", 1); @@ -11756,11 +12331,15 @@ static void doRecordC (mcPretty_pretty p, decl_node n, decl_node *m) } else if (decl_isVarient (f)) { + /* avoid dangling else. */ doVarientC (p, f); outText (p, (char *) ";\\n", 3); } else if (decl_isVarientField (f)) - doVarientFieldC (p, f); + { + /* avoid dangling else. */ + doVarientFieldC (p, f); + } i += 1; } p = outKc (p, (char *) "}", 1); @@ -11829,15 +12408,27 @@ static void doSetC (mcPretty_pretty p, decl_node n) static void doTypeC (mcPretty_pretty p, decl_node n, decl_node *m) { if (n == NULL) - outText (p, (char *) "void", 4); + { + outText (p, (char *) "void", 4); + } else if (isBase (n)) - doBaseC (p, n); + { + /* avoid dangling else. */ + doBaseC (p, n); + } else if (isSystem (n)) - doSystemC (p, n); + { + /* avoid dangling else. */ + doSystemC (p, n); + } else if (decl_isEnumeration (n)) - doEnumerationC (p, n); + { + /* avoid dangling else. */ + doEnumerationC (p, n); + } else if (decl_isType (n)) { + /* avoid dangling else. */ doFQNameC (p, n); /* ELSIF isProcType (n) OR isArray (n) OR isRecord (n) @@ -11847,19 +12438,38 @@ static void doTypeC (mcPretty_pretty p, decl_node n, decl_node *m) mcPretty_setNeedSpace (p); } else if (decl_isProcType (n)) - doProcTypeC (p, n, (*m)); + { + /* avoid dangling else. */ + doProcTypeC (p, n, (*m)); + } else if (decl_isArray (n)) - doArrayC (p, n); + { + /* avoid dangling else. */ + doArrayC (p, n); + } else if (decl_isRecord (n)) - doRecordC (p, n, m); + { + /* avoid dangling else. */ + doRecordC (p, n, m); + } else if (decl_isPointer (n)) - doPointerC (p, n, m); + { + /* avoid dangling else. */ + doPointerC (p, n, m); + } else if (decl_isSubrange (n)) - doSubrangeC (p, n); + { + /* avoid dangling else. */ + doSubrangeC (p, n); + } else if (decl_isSet (n)) - doSetC (p, n); + { + /* avoid dangling else. */ + doSetC (p, n); + } else { + /* avoid dangling else. */ /* --fixme-- */ mcPretty_print (p, (char *) "to do ... typedef etc etc ", 27); doFQNameC (p, n); @@ -11922,28 +12532,54 @@ static void doTypeNameC (mcPretty_pretty p, decl_node n) mcPretty_setNeedSpace (p); } else if (isBase (n)) - doBaseC (p, n); + { + /* avoid dangling else. */ + doBaseC (p, n); + } else if (isSystem (n)) - doSystemC (p, n); + { + /* avoid dangling else. */ + doSystemC (p, n); + } else if (decl_isEnumeration (n)) - mcPretty_print (p, (char *) "is enumeration type name required\\n", 35); + { + /* avoid dangling else. */ + mcPretty_print (p, (char *) "is enumeration type name required\\n", 35); + } else if (decl_isType (n)) - doFQNameC (p, n); + { + /* avoid dangling else. */ + doFQNameC (p, n); + } else if (decl_isProcType (n)) { + /* avoid dangling else. */ mcPretty_print (p, (char *) "is proc type name required\\n", 28); stop (); } else if (decl_isArray (n)) - doArrayNameC (p, n); + { + /* avoid dangling else. */ + doArrayNameC (p, n); + } else if (decl_isRecord (n)) - doRecordNameC (p, n); + { + /* avoid dangling else. */ + doRecordNameC (p, n); + } else if (decl_isPointer (n)) - doPointerNameC (p, n); + { + /* avoid dangling else. */ + doPointerNameC (p, n); + } else if (decl_isSubrange (n)) - doSubrangeC (p, n); + { + /* avoid dangling else. */ + doSubrangeC (p, n); + } else { + /* avoid dangling else. */ mcPretty_print (p, (char *) "is type unknown required\\n", 26); stop (); } @@ -11978,16 +12614,20 @@ static void doVarC (decl_node n) } else if ((! (decl_isExported (n))) && (! (isLocal (n)))) { + /* avoid dangling else. */ mcPretty_print (doP, (char *) "static", 6); mcPretty_setNeedSpace (doP); } else if (mcOptions_getExtendedOpaque ()) - if (isExternal (n)) - { - /* different module declared this variable, therefore it is extern. */ - mcPretty_print (doP, (char *) "extern", 6); - mcPretty_setNeedSpace (doP); - } + { + /* avoid dangling else. */ + if (isExternal (n)) + { + /* different module declared this variable, therefore it is extern. */ + mcPretty_print (doP, (char *) "extern", 6); + mcPretty_setNeedSpace (doP); + } + } s = NULL; doTypeC (doP, decl_getType (n), &s); mcPretty_setNeedSpace (doP); @@ -12019,8 +12659,10 @@ static void doProcedureCommentText (mcPretty_pretty p, DynamicStrings_String s) /* remove from the start of the comment. */ while (((DynamicStrings_Length (s)) > 0) && ((DynamicStrings_char (s, 0)) == ASCII_lf)) - s = DynamicStrings_Slice (s, 1, 0); - outTextS (p, s); + { + s = DynamicStrings_Slice (s, 1, 0); + } + outTextS (p, s); } @@ -12060,11 +12702,13 @@ static void doProcedureHeadingC (decl_node n) } else if (decl_isExported (n)) { + /* avoid dangling else. */ doProcedureComment (doP, mcComment_getContent (n->procedureF.modComment)); doExternCP (doP); } else { + /* avoid dangling else. */ doProcedureComment (doP, mcComment_getContent (n->procedureF.modComment)); outText (doP, (char *) "static", 6); mcPretty_setNeedSpace (doP); @@ -12090,7 +12734,9 @@ static void doProcedureHeadingC (decl_node n) i += 1; } if (h == 0) - outText (doP, (char *) "void", 4); + { + outText (doP, (char *) "void", 4); + } mcPretty_print (doP, (char *) ")", 1); } @@ -12200,7 +12846,9 @@ static void doUnboundedParamCopyC (mcPretty_pretty p, decl_node n) { q = Indexing_GetIndice (n->procedureF.parameters, i); if (decl_isParam (q)) - seen = (checkDeclareUnboundedParamCopyC (p, q)) || seen; + { + seen = (checkDeclareUnboundedParamCopyC (p, q)) || seen; + } i += 1; } if (seen) @@ -12212,7 +12860,9 @@ static void doUnboundedParamCopyC (mcPretty_pretty p, decl_node n) { q = Indexing_GetIndice (n->procedureF.parameters, i); if (decl_isParam (q)) - checkUnboundedParamCopyC (p, q); + { + checkUnboundedParamCopyC (p, q); + } i += 1; } } @@ -12226,13 +12876,15 @@ static void doUnboundedParamCopyC (mcPretty_pretty p, decl_node n) static void doPrototypeC (decl_node n) { if (! (decl_isExported (n))) - if (! ((mcOptions_getExtendedOpaque ()) && (isDefForC (decl_getScope (n))))) - { - keyc_enterScope (n); - doProcedureHeadingC (n); - mcPretty_print (doP, (char *) ";\\n", 3); - keyc_leaveScope (n); - } + { + if (! ((mcOptions_getExtendedOpaque ()) && (isDefForC (decl_getScope (n))))) + { + keyc_enterScope (n); + doProcedureHeadingC (n); + mcPretty_print (doP, (char *) ";\\n", 3); + keyc_leaveScope (n); + } + } } @@ -12267,7 +12919,9 @@ static void addVariablesTodo (decl_node n) addTodo (decl_getType (n)); } else - addTodo (n); + { + addTodo (n); + } } } @@ -12279,9 +12933,13 @@ static void addVariablesTodo (decl_node n) static void addTypesTodo (decl_node n) { if (decl_isUnbounded (n)) - addDone (n); + { + addDone (n); + } else - addTodo (n); + { + addTodo (n); + } } @@ -12442,22 +13100,46 @@ static void doSimplifyNode (alists_alist l, decl_node n) if (n == NULL) {} /* empty. */ else if (decl_isType (n)) - /* no need to simplify a type. */ - simplifyNode (l, decl_getType (n)); + { + /* avoid dangling else. */ + /* no need to simplify a type. */ + simplifyNode (l, decl_getType (n)); + } else if (decl_isVar (n)) - simplifyVar (l, n); + { + /* avoid dangling else. */ + simplifyVar (l, n); + } else if (decl_isRecord (n)) - simplifyRecord (l, n); + { + /* avoid dangling else. */ + simplifyRecord (l, n); + } else if (decl_isRecordField (n)) - simplifyType (l, &n->recordfieldF.type); + { + /* avoid dangling else. */ + simplifyType (l, &n->recordfieldF.type); + } else if (decl_isArray (n)) - simplifyType (l, &n->arrayF.type); + { + /* avoid dangling else. */ + simplifyType (l, &n->arrayF.type); + } else if (decl_isVarient (n)) - simplifyVarient (l, n); + { + /* avoid dangling else. */ + simplifyVarient (l, n); + } else if (decl_isVarientField (n)) - simplifyVarientField (l, n); + { + /* avoid dangling else. */ + simplifyVarientField (l, n); + } else if (decl_isPointer (n)) - simplifyType (l, &n->pointerF.type); + { + /* avoid dangling else. */ + simplifyType (l, &n->pointerF.type); + } } @@ -12588,8 +13270,12 @@ static void addExported (decl_node n) s = decl_getScope (n); if (((s != NULL) && (decl_isDef (s))) && (s != defModule)) - if (((decl_isType (n)) || (decl_isVar (n))) || (decl_isConst (n))) - addTodo (n); + { + if (((decl_isType (n)) || (decl_isVar (n))) || (decl_isConst (n))) + { + addTodo (n); + } + } } @@ -12604,7 +13290,10 @@ static void addExternal (decl_node n) {} /* empty. */ /* do nothing. */ else if (! (decl_isDef (n))) - addTodo (n); + { + /* avoid dangling else. */ + addTodo (n); + } } @@ -12681,14 +13370,17 @@ static void includeDefVarProcedure (decl_node n) /* avoid dangling else. */ defModule = decl_lookupDef (decl_getSymName (n)); if (defModule != NULL) - /* + { + /* includeVar (defModule^.defF.decls) ; simplifyTypes (defModule^.defF.decls) ; */ - joinProcedures (n, defModule); + joinProcedures (n, defModule); + } } else if (decl_isDef (n)) { + /* avoid dangling else. */ includeVar (n->defF.decls); simplifyTypes (n->defF.decls); } @@ -12765,7 +13457,9 @@ static unsigned int isSingleStatement (decl_node s) mcDebug_assert (decl_isStatementSequence (s)); h = Indexing_HighIndice (s->stmtF.statements); if ((h == 0) || (h > 1)) - return FALSE; + { + return FALSE; + } s = Indexing_GetIndice (s->stmtF.statements, 1); return (! (decl_isStatementSequence (s))) || (isSingleStatement (s)); } @@ -12790,7 +13484,9 @@ static void doCommentC (mcPretty_pretty p, decl_node s) outText (p, (char *) " /* ", 4); } else - outText (p, (char *) "/* ", 3); + { + outText (p, (char *) "/* ", 3); + } c = mcComment_getContent (s->commentF.content); c = DynamicStrings_RemoveWhitePrefix (DynamicStrings_RemoveWhitePostfix (c)); outTextS (p, c); @@ -12807,9 +13503,13 @@ static void doCommentC (mcPretty_pretty p, decl_node s) static void doAfterCommentC (mcPretty_pretty p, decl_node c) { if (c == NULL) - outText (p, (char *) "\\n", 2); + { + outText (p, (char *) "\\n", 2); + } else - doCommentC (p, c); + { + doCommentC (p, c); + } } @@ -12839,31 +13539,33 @@ static void doReturnC (mcPretty_pretty p, decl_node s) static void doExprCastC (mcPretty_pretty p, decl_node e, decl_node type) { if ((decl_skipType (type)) != (decl_skipType (decl_getType (e)))) - if (lang == ansiCP) - { - /* avoid gcc warning by using compound statement even if not strictly necessary. */ - /* potentially a cast is required. */ - if ((decl_isPointer (type)) || (type == addressN)) - { - outText (p, (char *) "reinterpret_cast<", 17); - doTypeNameC (p, type); - mcPretty_noSpace (p); - outText (p, (char *) "> (", 3); - doExprC (p, e); - outText (p, (char *) ")", 1); - return; - } - else - { - outText (p, (char *) "static_cast<", 12); - doTypeNameC (p, type); - mcPretty_noSpace (p); - outText (p, (char *) "> (", 3); - doExprC (p, e); - outText (p, (char *) ")", 1); - return; - } - } + { + if (lang == ansiCP) + { + /* avoid gcc warning by using compound statement even if not strictly necessary. */ + /* potentially a cast is required. */ + if ((decl_isPointer (type)) || (type == addressN)) + { + outText (p, (char *) "reinterpret_cast<", 17); + doTypeNameC (p, type); + mcPretty_noSpace (p); + outText (p, (char *) "> (", 3); + doExprC (p, e); + outText (p, (char *) ")", 1); + return; + } + else + { + outText (p, (char *) "static_cast<", 12); + doTypeNameC (p, type); + mcPretty_noSpace (p); + outText (p, (char *) "> (", 3); + doExprC (p, e); + outText (p, (char *) ")", 1); + return; + } + } + } doExprC (p, e); } @@ -12920,8 +13622,9 @@ static void doCompoundStmt (mcPretty_pretty p, decl_node s) outText (p, (char *) "{} /* empty. */\\n", 19); p = mcPretty_popPretty (p); } - else if ((decl_isStatementSequence (s)) && (isSingleStatement (s))) + else if (((decl_isStatementSequence (s)) && (isSingleStatement (s))) && ! forceCompoundStatement) { + /* avoid dangling else. */ p = mcPretty_pushPretty (p); mcPretty_setindent (p, (mcPretty_getindent (p))+indentationC); doStatementSequenceC (p, s); @@ -12929,6 +13632,7 @@ static void doCompoundStmt (mcPretty_pretty p, decl_node s) } else { + /* avoid dangling else. */ p = mcPretty_pushPretty (p); mcPretty_setindent (p, (mcPretty_getindent (p))+indentationC); outText (p, (char *) "{\\n", 3); @@ -12955,7 +13659,7 @@ static void doElsifC (mcPretty_pretty p, decl_node s) doExprC (p, s->elsifF.expr); outText (p, (char *) ")\\n", 3); mcDebug_assert ((s->elsifF.else_ == NULL) || (s->elsifF.elsif == NULL)); - if ((hasIfAndNoElse (s->elsifF.then)) && ((s->elsifF.else_ != NULL) || (s->elsifF.elsif != NULL))) + if (forceCompoundStatement || ((hasIfAndNoElse (s->elsifF.then)) && ((s->elsifF.else_ != NULL) || (s->elsifF.elsif != NULL)))) { /* avoid dangling else. */ p = mcPretty_pushPretty (p); @@ -12970,14 +13674,36 @@ static void doElsifC (mcPretty_pretty p, decl_node s) p = mcPretty_popPretty (p); } else - doCompoundStmt (p, s->elsifF.then); + { + doCompoundStmt (p, s->elsifF.then); + } if (containsStatement (s->elsifF.else_)) { outText (p, (char *) "else\\n", 6); - doCompoundStmt (p, s->elsifF.else_); + if (forceCompoundStatement) + { + /* avoid dangling else. */ + p = mcPretty_pushPretty (p); + mcPretty_setindent (p, (mcPretty_getindent (p))+indentationC); + outText (p, (char *) "{\\n", 3); + p = mcPretty_pushPretty (p); + mcPretty_setindent (p, (mcPretty_getindent (p))+indentationC); + outText (p, (char *) "/* avoid dangling else. */\\n", 29); + doStatementSequenceC (p, s->elsifF.else_); + p = mcPretty_popPretty (p); + outText (p, (char *) "}\\n", 3); + p = mcPretty_popPretty (p); + } + else + { + doCompoundStmt (p, s->elsifF.else_); + } } else if ((s->elsifF.elsif != NULL) && (decl_isElsif (s->elsifF.elsif))) - doElsifC (p, s->elsifF.elsif); + { + /* avoid dangling else. */ + doElsifC (p, s->elsifF.elsif); + } } @@ -13006,33 +13732,50 @@ static unsigned int noIfElseChained (decl_node n) { /* avoid gcc warning by using compound statement even if not strictly necessary. */ if (decl_isIf (n)) - if (n->ifF.else_ != NULL) - /* we do have an else, continue to check this statement. */ - return hasIfAndNoElse (n->ifF.else_); - else if (n->ifF.elsif == NULL) - /* neither else or elsif. */ - return TRUE; - else - { - /* test elsif for lack of else. */ - e = n->ifF.elsif; - mcDebug_assert (decl_isElsif (e)); - return noIfElseChained (e); - } + { + if (n->ifF.else_ != NULL) + { + /* we do have an else, continue to check this statement. */ + return hasIfAndNoElse (n->ifF.else_); + } + else if (n->ifF.elsif == NULL) + { + /* avoid dangling else. */ + /* neither else or elsif. */ + return TRUE; + } + else + { + /* avoid dangling else. */ + /* test elsif for lack of else. */ + e = n->ifF.elsif; + mcDebug_assert (decl_isElsif (e)); + return noIfElseChained (e); + } + } else if (decl_isElsif (n)) - if (n->elsifF.else_ != NULL) - /* we do have an else, continue to check this statement. */ - return hasIfAndNoElse (n->elsifF.else_); - else if (n->elsifF.elsif == NULL) - /* neither else or elsif. */ - return TRUE; - else - { - /* test elsif for lack of else. */ - e = n->elsifF.elsif; - mcDebug_assert (decl_isElsif (e)); - return noIfElseChained (e); - } + { + /* avoid dangling else. */ + if (n->elsifF.else_ != NULL) + { + /* we do have an else, continue to check this statement. */ + return hasIfAndNoElse (n->elsifF.else_); + } + else if (n->elsifF.elsif == NULL) + { + /* avoid dangling else. */ + /* neither else or elsif. */ + return TRUE; + } + else + { + /* avoid dangling else. */ + /* test elsif for lack of else. */ + e = n->elsifF.elsif; + mcDebug_assert (decl_isElsif (e)); + return noIfElseChained (e); + } + } } return FALSE; } @@ -13045,17 +13788,22 @@ static unsigned int noIfElseChained (decl_node n) static unsigned int hasIfElse (decl_node n) { if (n != NULL) - if (decl_isStatementSequence (n)) - { - /* avoid gcc warning by using compound statement even if not strictly necessary. */ - if (isStatementSequenceEmpty (n)) - return FALSE; - else if (isSingleStatement (n)) - { - n = Indexing_GetIndice (n->stmtF.statements, 1); - return isIfElse (n); - } - } + { + if (decl_isStatementSequence (n)) + { + /* avoid gcc warning by using compound statement even if not strictly necessary. */ + if (isStatementSequenceEmpty (n)) + { + return FALSE; + } + else if (isSingleStatement (n)) + { + /* avoid dangling else. */ + n = Indexing_GetIndice (n->stmtF.statements, 1); + return isIfElse (n); + } + } + } return FALSE; } @@ -13081,20 +13829,29 @@ static unsigned int hasIfAndNoElse (decl_node n) { /* avoid gcc warning by using compound statement even if not strictly necessary. */ if (decl_isStatementSequence (n)) - if (isStatementSequenceEmpty (n)) - return FALSE; - else if (isSingleStatement (n)) - { - n = Indexing_GetIndice (n->stmtF.statements, 1); - return hasIfAndNoElse (n); - } - else - { - n = Indexing_GetIndice (n->stmtF.statements, Indexing_HighIndice (n->stmtF.statements)); - return hasIfAndNoElse (n); - } + { + if (isStatementSequenceEmpty (n)) + { + return FALSE; + } + else if (isSingleStatement (n)) + { + /* avoid dangling else. */ + n = Indexing_GetIndice (n->stmtF.statements, 1); + return hasIfAndNoElse (n); + } + else + { + /* avoid dangling else. */ + n = Indexing_GetIndice (n->stmtF.statements, Indexing_HighIndice (n->stmtF.statements)); + return hasIfAndNoElse (n); + } + } else if ((decl_isElsif (n)) || (decl_isIf (n))) - return noIfElseChained (n); + { + /* avoid dangling else. */ + return noIfElseChained (n); + } } return FALSE; } @@ -13131,6 +13888,7 @@ static void doIfC (mcPretty_pretty p, decl_node s) } else if ((noIfElse (s)) && (hasIfElse (s->ifF.then))) { + /* avoid dangling else. */ /* gcc does not like legal non dangling else, as it is poor style. So we will avoid getting a warning. */ p = mcPretty_pushPretty (p); @@ -13145,7 +13903,10 @@ static void doIfC (mcPretty_pretty p, decl_node s) p = mcPretty_popPretty (p); } else - doCompoundStmt (p, s->ifF.then); + { + /* avoid dangling else. */ + doCompoundStmt (p, s->ifF.then); + } mcDebug_assert ((s->ifF.else_ == NULL) || (s->ifF.elsif == NULL)); if (containsStatement (s->ifF.else_)) { @@ -13156,6 +13917,7 @@ static void doIfC (mcPretty_pretty p, decl_node s) } else if ((s->ifF.elsif != NULL) && (decl_isElsif (s->ifF.elsif))) { + /* avoid dangling else. */ doCommentC (p, s->ifF.elseComment.body); doCommentC (p, s->ifF.elseComment.after); doElsifC (p, s->ifF.elsif); @@ -13176,30 +13938,34 @@ static void doForIncCP (mcPretty_pretty p, decl_node s) mcDebug_assert (decl_isFor (s)); t = decl_skipType (decl_getType (s->forF.des)); if (decl_isEnumeration (t)) - if (s->forF.increment == NULL) - { - doExprC (p, s->forF.des); - outText (p, (char *) "= static_cast<", 14); - doTypeNameC (p, decl_getType (s->forF.des)); - mcPretty_noSpace (p); - outText (p, (char *) ">(static_cast(", 19); - doExprC (p, s->forF.des); - outText (p, (char *) "+1))", 4); - } - else - { - doExprC (p, s->forF.des); - outText (p, (char *) "= static_cast<", 14); - doTypeNameC (p, decl_getType (s->forF.des)); - mcPretty_noSpace (p); - outText (p, (char *) ">(static_cast(", 19); - doExprC (p, s->forF.des); - outText (p, (char *) "+", 1); - doExprC (p, s->forF.increment); - outText (p, (char *) "))", 2); - } + { + if (s->forF.increment == NULL) + { + doExprC (p, s->forF.des); + outText (p, (char *) "= static_cast<", 14); + doTypeNameC (p, decl_getType (s->forF.des)); + mcPretty_noSpace (p); + outText (p, (char *) ">(static_cast(", 19); + doExprC (p, s->forF.des); + outText (p, (char *) "+1))", 4); + } + else + { + doExprC (p, s->forF.des); + outText (p, (char *) "= static_cast<", 14); + doTypeNameC (p, decl_getType (s->forF.des)); + mcPretty_noSpace (p); + outText (p, (char *) ">(static_cast(", 19); + doExprC (p, s->forF.des); + outText (p, (char *) "+", 1); + doExprC (p, s->forF.increment); + outText (p, (char *) "))", 2); + } + } else - doForIncC (p, s); + { + doForIncC (p, s); + } } @@ -13232,9 +13998,13 @@ static void doForIncC (mcPretty_pretty p, decl_node s) static void doForInc (mcPretty_pretty p, decl_node s) { if (lang == ansiCP) - doForIncCP (p, s); + { + doForIncCP (p, s); + } else - doForIncC (p, s); + { + doForIncC (p, s); + } } @@ -13312,23 +14082,35 @@ static void doFuncHighC (mcPretty_pretty p, decl_node a) decl_node n; if ((decl_isLiteral (a)) && ((decl_getType (a)) == charN)) - outCard (p, 0); + { + outCard (p, 0); + } else if (isString (a)) - outCard (p, a->stringF.length-2); + { + /* avoid dangling else. */ + outCard (p, a->stringF.length-2); + } else if ((decl_isConst (a)) && (isString (a->constF.value))) - doFuncHighC (p, a->constF.value); + { + /* avoid dangling else. */ + doFuncHighC (p, a->constF.value); + } else if (decl_isUnbounded (decl_getType (a))) { + /* avoid dangling else. */ outText (p, (char *) "_", 1); outTextN (p, decl_getSymName (a)); outText (p, (char *) "_high", 5); } else if (decl_isArray (decl_skipType (decl_getType (a)))) { + /* avoid dangling else. */ n = decl_skipType (decl_getType (a)); s = n->arrayF.subr; if (isZero (getMin (s))) - doExprC (p, getMax (s)); + { + doExprC (p, getMax (s)); + } else { outText (p, (char *) "(", 1); @@ -13339,6 +14121,7 @@ static void doFuncHighC (mcPretty_pretty p, decl_node a) } else { + /* avoid dangling else. */ /* output sizeof (a) in bytes for the high. */ outText (p, (char *) "(sizeof", 7); mcPretty_setNeedSpace (p); @@ -13373,15 +14156,21 @@ static void doMultiplyBySize (mcPretty_pretty p, decl_node a) static void doTotype (mcPretty_pretty p, decl_node a, decl_node t) { if ((! (isString (a))) && (! (decl_isLiteral (a)))) - if (decl_isVar (a)) - { - if (((a->varF.isParameter || a->varF.isVarParameter) && (decl_isUnbounded (decl_getType (a)))) && ((decl_skipType (decl_getType (decl_getType (a)))) == (decl_skipType (decl_getType (t))))) - /* do not multiply by size as the existing high value is correct. */ - return; - a = decl_getType (a); - if (decl_isArray (a)) - doMultiplyBySize (p, decl_skipType (decl_getType (a))); - } + { + if (decl_isVar (a)) + { + if (((a->varF.isParameter || a->varF.isVarParameter) && (decl_isUnbounded (decl_getType (a)))) && ((decl_skipType (decl_getType (decl_getType (a)))) == (decl_skipType (decl_getType (t))))) + { + /* do not multiply by size as the existing high value is correct. */ + return; + } + a = decl_getType (a); + if (decl_isArray (a)) + { + doMultiplyBySize (p, decl_skipType (decl_getType (a))); + } + } + } if (t == wordN) { mcPretty_setNeedSpace (p); @@ -13423,30 +14212,45 @@ static void doFuncUnbounded (mcPretty_pretty p, decl_node actual, decl_node form s = DynamicStrings_KillString (s); } else if (isString (actual)) - outCstring (p, actual, TRUE); + { + /* avoid dangling else. */ + outCstring (p, actual, TRUE); + } else if (decl_isConst (actual)) { + /* avoid dangling else. */ actual = resolveString (actual); mcDebug_assert (isString (actual)); outCstring (p, actual, TRUE); } else if (isFuncCall (actual)) - if ((getExprType (actual)) == NULL) - mcMetaError_metaError3 ((char *) "there is no return type to the procedure function {%3ad} which is being passed as the parameter {%1ad} to {%2ad}", 112, (unsigned char *) &formal, (sizeof (formal)-1), (unsigned char *) &func, (sizeof (func)-1), (unsigned char *) &actual, (sizeof (actual)-1)); - else - { - outText (p, (char *) "&", 1); - doExprC (p, actual); - } + { + /* avoid dangling else. */ + if ((getExprType (actual)) == NULL) + { + mcMetaError_metaError3 ((char *) "there is no return type to the procedure function {%3ad} which is being passed as the parameter {%1ad} to {%2ad}", 112, (unsigned char *) &formal, (sizeof (formal)-1), (unsigned char *) &func, (sizeof (func)-1), (unsigned char *) &actual, (sizeof (actual)-1)); + } + else + { + outText (p, (char *) "&", 1); + doExprC (p, actual); + } + } else if (decl_isUnbounded (decl_getType (actual))) - /* doExprC (p, actual). */ - doFQNameC (p, actual); + { + /* avoid dangling else. */ + /* doExprC (p, actual). */ + doFQNameC (p, actual); + } else { + /* avoid dangling else. */ outText (p, (char *) "&", 1); doExprC (p, actual); if (decl_isArray (decl_skipType (decl_getType (actual)))) - outText (p, (char *) ".array[0]", 9); + { + outText (p, (char *) ".array[0]", 9); + } } /* --fixme-- isDefForC is not implemented yet. IF NOT isDefForC (getScope (func)) @@ -13489,13 +14293,19 @@ static void doProcedureParamC (mcPretty_pretty p, decl_node actual, decl_node fo static void doAdrExprC (mcPretty_pretty p, decl_node n) { if (isDeref (n)) - /* no point in issuing & ( * n ) */ - doExprC (p, n->unaryF.arg); + { + /* no point in issuing & ( * n ) */ + doExprC (p, n->unaryF.arg); + } else if ((decl_isVar (n)) && n->varF.isVarParameter) - /* no point in issuing & ( * n ) */ - doFQNameC (p, n); + { + /* avoid dangling else. */ + /* no point in issuing & ( * n ) */ + doFQNameC (p, n); + } else { + /* avoid dangling else. */ outText (p, (char *) "&", 1); doExprC (p, n); } @@ -13519,10 +14329,14 @@ static unsigned int typePair (decl_node a, decl_node b, decl_node x, decl_node y static unsigned int needsCast (decl_node at, decl_node ft) { if ((((((((((((at == nilN) || (at == ft)) || (typePair (at, ft, cardinalN, wordN))) || (typePair (at, ft, cardinalN, ztypeN))) || (typePair (at, ft, integerN, ztypeN))) || (typePair (at, ft, longcardN, ztypeN))) || (typePair (at, ft, shortcardN, ztypeN))) || (typePair (at, ft, longintN, ztypeN))) || (typePair (at, ft, shortintN, ztypeN))) || (typePair (at, ft, realN, rtypeN))) || (typePair (at, ft, longrealN, rtypeN))) || (typePair (at, ft, shortrealN, rtypeN))) - return FALSE; + { + return FALSE; + } else - return TRUE; -} + { + return TRUE; + } +} /* @@ -13550,19 +14364,25 @@ static unsigned int checkSystemCast (mcPretty_pretty p, decl_node actual, decl_n } else if ((decl_isPointer (decl_skipType (ft))) || ((decl_skipType (ft)) == addressN)) { + /* avoid dangling else. */ outText (p, (char *) "reinterpret_cast<", 17); doTypeNameC (p, ft); if (decl_isVarParam (formal)) - outText (p, (char *) "*", 1); + { + outText (p, (char *) "*", 1); + } mcPretty_noSpace (p); outText (p, (char *) "> (", 3); } else { + /* avoid dangling else. */ outText (p, (char *) "static_cast<", 12); doTypeNameC (p, ft); if (decl_isVarParam (formal)) - outText (p, (char *) "*", 1); + { + outText (p, (char *) "*", 1); + } mcPretty_noSpace (p); outText (p, (char *) "> (", 3); } @@ -13573,7 +14393,9 @@ static unsigned int checkSystemCast (mcPretty_pretty p, decl_node actual, decl_n outText (p, (char *) "(", 1); doTypeNameC (p, ft); if (decl_isVarParam (formal)) - outText (p, (char *) "*", 1); + { + outText (p, (char *) "*", 1); + } mcPretty_noSpace (p); outText (p, (char *) ")", 1); mcPretty_setNeedSpace (p); @@ -13613,32 +14435,56 @@ static void doFuncParamC (mcPretty_pretty p, decl_node actual, decl_node formal, unsigned int lbr; if (formal == NULL) - doExprC (p, actual); + { + doExprC (p, actual); + } else { ft = decl_skipType (decl_getType (formal)); if (decl_isUnbounded (ft)) - doFuncUnbounded (p, actual, formal, ft, func); + { + doFuncUnbounded (p, actual, formal, ft, func); + } else - if ((isAProcType (ft)) && (decl_isProcedure (actual))) - if (decl_isVarParam (formal)) - mcMetaError_metaError1 ((char *) "{%1MDad} cannot be passed as a VAR parameter", 44, (unsigned char *) &actual, (sizeof (actual)-1)); - else - doProcedureParamC (p, actual, formal); - else if ((((decl_getType (actual)) != NULL) && (decl_isProcType (decl_skipType (decl_getType (actual))))) && ((decl_getType (actual)) != (decl_getType (formal)))) - if (decl_isVarParam (formal)) - mcMetaError_metaError2 ((char *) "{%1MDad} cannot be passed as a VAR parameter as the parameter requires a cast to the formal type {%2MDtad}", 106, (unsigned char *) &actual, (sizeof (actual)-1), (unsigned char *) &formal, (sizeof (formal)-1)); + { + if ((isAProcType (ft)) && (decl_isProcedure (actual))) + { + if (decl_isVarParam (formal)) + { + mcMetaError_metaError1 ((char *) "{%1MDad} cannot be passed as a VAR parameter", 44, (unsigned char *) &actual, (sizeof (actual)-1)); + } + else + { + doProcedureParamC (p, actual, formal); + } + } + else if ((((decl_getType (actual)) != NULL) && (decl_isProcType (decl_skipType (decl_getType (actual))))) && ((decl_getType (actual)) != (decl_getType (formal)))) + { + /* avoid dangling else. */ + if (decl_isVarParam (formal)) + { + mcMetaError_metaError2 ((char *) "{%1MDad} cannot be passed as a VAR parameter as the parameter requires a cast to the formal type {%2MDtad}", 106, (unsigned char *) &actual, (sizeof (actual)-1), (unsigned char *) &formal, (sizeof (formal)-1)); + } + else + { + doCastC (p, decl_getType (formal), actual); + } + } else - doCastC (p, decl_getType (formal), actual); - else - { - lbr = checkSystemCast (p, actual, formal); - if (decl_isVarParam (formal)) - doAdrExprC (p, actual); - else - doExprC (p, actual); - emitN (p, (char *) ")", 1, lbr); - } + { + /* avoid dangling else. */ + lbr = checkSystemCast (p, actual, formal); + if (decl_isVarParam (formal)) + { + doAdrExprC (p, actual); + } + else + { + doExprC (p, actual); + } + emitN (p, (char *) ")", 1, lbr); + } + } } } @@ -13654,7 +14500,9 @@ static decl_node getNthParamType (Indexing_Index l, unsigned int i) p = getNthParam (l, i); if (p != NULL) - return decl_getType (p); + { + return decl_getType (p); + } return NULL; } @@ -13679,16 +14527,24 @@ static decl_node getNthParam (Indexing_Index l, unsigned int i) { p = Indexing_GetIndice (l, j); if (decl_isParam (p)) - k = identListLen (p->paramF.namelist); + { + k = identListLen (p->paramF.namelist); + } else if (decl_isVarParam (p)) - k = identListLen (p->varparamF.namelist); + { + /* avoid dangling else. */ + k = identListLen (p->varparamF.namelist); + } else { + /* avoid dangling else. */ mcDebug_assert (decl_isVarargs (p)); return NULL; } if (i <= k) - return p; + { + return p; + } else { i -= k; @@ -13712,7 +14568,9 @@ static void doFuncArgsC (mcPretty_pretty p, decl_node s, Indexing_Index l, unsig unsigned int n; if (needParen) - outText (p, (char *) "(", 1); + { + outText (p, (char *) "(", 1); + } if (s->funccallF.args != NULL) { i = 1; @@ -13750,7 +14608,9 @@ static void doProcTypeArgsC (mcPretty_pretty p, decl_node s, Indexing_Index args unsigned int n; if (needParen) - outText (p, (char *) "(", 1); + { + outText (p, (char *) "(", 1); + } if (s->funccallF.args != NULL) { i = 1; @@ -13783,26 +14643,38 @@ static void doProcTypeArgsC (mcPretty_pretty p, decl_node s, Indexing_Index args static void doAdrArgC (mcPretty_pretty p, decl_node n) { if (isDeref (n)) - /* & and * cancel each other out. */ - doExprC (p, n->unaryF.arg); + { + /* & and * cancel each other out. */ + doExprC (p, n->unaryF.arg); + } else if ((decl_isVar (n)) && n->varF.isVarParameter) - outTextN (p, decl_getSymName (n)); /* --fixme-- does the caller need to cast it? */ + { + /* avoid dangling else. */ + outTextN (p, decl_getSymName (n)); /* --fixme-- does the caller need to cast it? */ + } else - if (isString (n)) - if (lang == ansiCP) + { + /* avoid dangling else. */ + if (isString (n)) { - outText (p, (char *) "const_cast (reinterpret_cast", 48); - outText (p, (char *) "(", 1); - doExprC (p, n); - outText (p, (char *) "))", 2); + if (lang == ansiCP) + { + outText (p, (char *) "const_cast (reinterpret_cast", 48); + outText (p, (char *) "(", 1); + doExprC (p, n); + outText (p, (char *) "))", 2); + } + else + { + doExprC (p, n); + } } else - doExprC (p, n); - else - { - outText (p, (char *) "&", 1); - doExprC (p, n); - } + { + outText (p, (char *) "&", 1); + doExprC (p, n); + } + } } @@ -13812,13 +14684,8 @@ static void doAdrArgC (mcPretty_pretty p, decl_node n) static void doAdrC (mcPretty_pretty p, decl_node n) { - mcDebug_assert (isFuncCall (n)); - if (n->funccallF.args != NULL) - { - /* avoid dangling else. */ - if ((expListLen (n->funccallF.args)) == 1) - doAdrArgC (p, getExpList (n->funccallF.args, 1)); - } + mcDebug_assert (isUnary (n)); + doAdrArgC (p, n->unaryF.arg); } @@ -13828,11 +14695,15 @@ static void doAdrC (mcPretty_pretty p, decl_node n) static void doInc (mcPretty_pretty p, decl_node n) { - mcDebug_assert (isFuncCall (n)); + mcDebug_assert (isIntrinsic (n)); if (lang == ansiCP) - doIncDecCP (p, n, (char *) "+", 1); + { + doIncDecCP (p, n, (char *) "+", 1); + } else - doIncDecC (p, n, (char *) "+=", 2); + { + doIncDecC (p, n, (char *) "+=", 2); + } } @@ -13842,11 +14713,15 @@ static void doInc (mcPretty_pretty p, decl_node n) static void doDec (mcPretty_pretty p, decl_node n) { - mcDebug_assert (isFuncCall (n)); + mcDebug_assert (isIntrinsic (n)); if (lang == ansiCP) - doIncDecCP (p, n, (char *) "-", 1); + { + doIncDecCP (p, n, (char *) "-", 1); + } else - doIncDecC (p, n, (char *) "-=", 2); + { + doIncDecC (p, n, (char *) "-=", 2); + } } @@ -13861,17 +14736,21 @@ static void doIncDecC (mcPretty_pretty p, decl_node n, char *op_, unsigned int _ /* make a local copy of each unbounded array. */ memcpy (op, op_, _op_high+1); - mcDebug_assert (isFuncCall (n)); - if (n->funccallF.args != NULL) + mcDebug_assert (isIntrinsic (n)); + if (n->intrinsicF.args != NULL) { - doExprC (p, getExpList (n->funccallF.args, 1)); + doExprC (p, getExpList (n->intrinsicF.args, 1)); mcPretty_setNeedSpace (p); outText (p, (char *) op, _op_high); mcPretty_setNeedSpace (p); - if ((expListLen (n->funccallF.args)) == 1) - outText (p, (char *) "1", 1); + if ((expListLen (n->intrinsicF.args)) == 1) + { + outText (p, (char *) "1", 1); + } else - doExprC (p, getExpList (n->funccallF.args, 2)); + { + doExprC (p, getExpList (n->intrinsicF.args, 2)); + } } } @@ -13882,18 +14761,20 @@ static void doIncDecC (mcPretty_pretty p, decl_node n, char *op_, unsigned int _ static void doIncDecCP (mcPretty_pretty p, decl_node n, char *op_, unsigned int _op_high) { + decl_node lhs; decl_node type; char op[_op_high+1]; /* make a local copy of each unbounded array. */ memcpy (op, op_, _op_high+1); - mcDebug_assert (isFuncCall (n)); - if (n->funccallF.args != NULL) + mcDebug_assert (isIntrinsic (n)); + if (n->intrinsicF.args != NULL) { - doExprC (p, getExpList (n->funccallF.args, 1)); + lhs = getExpList (n->intrinsicF.args, 1); + doExprC (p, lhs); mcPretty_setNeedSpace (p); - type = decl_getType (getExpList (n->funccallF.args, 1)); + type = decl_getType (lhs); if ((decl_isPointer (type)) || (type == addressN)) { /* cast to (char * ) and then back again after the arithmetic is complete. */ @@ -13903,40 +14784,54 @@ static void doIncDecCP (mcPretty_pretty p, decl_node n, char *op_, unsigned int doTypeNameC (p, type); mcPretty_noSpace (p); outText (p, (char *) "> (reinterpret_cast (", 29); - doExprC (p, getExpList (n->funccallF.args, 1)); + doExprC (p, lhs); mcPretty_noSpace (p); outText (p, (char *) ")", 1); outText (p, (char *) op, _op_high); - if ((expListLen (n->funccallF.args)) == 1) - outText (p, (char *) "1", 1); + if ((expListLen (n->intrinsicF.args)) == 1) + { + outText (p, (char *) "1", 1); + } else - doExprC (p, getExpList (n->funccallF.args, 2)); + { + doExprC (p, getExpList (n->intrinsicF.args, 2)); + } outText (p, (char *) ")", 1); } else if (decl_isEnumeration (decl_skipType (type))) { + /* avoid dangling else. */ outText (p, (char *) "= static_cast<", 14); doTypeNameC (p, type); mcPretty_noSpace (p); outText (p, (char *) ">(static_cast(", 19); - doExprC (p, getExpList (n->funccallF.args, 1)); + doExprC (p, lhs); outText (p, (char *) ")", 1); outText (p, (char *) op, _op_high); - if ((expListLen (n->funccallF.args)) == 1) - outText (p, (char *) "1", 1); + if ((expListLen (n->intrinsicF.args)) == 1) + { + outText (p, (char *) "1", 1); + } else - doExprC (p, getExpList (n->funccallF.args, 2)); + { + doExprC (p, getExpList (n->intrinsicF.args, 2)); + } outText (p, (char *) ")", 1); } else { + /* avoid dangling else. */ outText (p, (char *) op, _op_high); outText (p, (char *) "=", 1); mcPretty_setNeedSpace (p); - if ((expListLen (n->funccallF.args)) == 1) - outText (p, (char *) "1", 1); + if ((expListLen (n->intrinsicF.args)) == 1) + { + outText (p, (char *) "1", 1); + } else - doExprC (p, getExpList (n->funccallF.args, 2)); + { + doExprC (p, getExpList (n->intrinsicF.args, 2)); + } } } } @@ -13950,14 +14845,14 @@ static void doInclC (mcPretty_pretty p, decl_node n) { decl_node lo; - mcDebug_assert (isFuncCall (n)); - if (n->funccallF.args != NULL) + mcDebug_assert (isIntrinsic (n)); + if (n->intrinsicF.args != NULL) { /* avoid gcc warning by using compound statement even if not strictly necessary. */ - if ((expListLen (n->funccallF.args)) == 2) + if ((expListLen (n->intrinsicF.args)) == 2) { - doExprC (p, getExpList (n->funccallF.args, 1)); - lo = getSetLow (getExpList (n->funccallF.args, 1)); + doExprC (p, getExpList (n->intrinsicF.args, 1)); + lo = getSetLow (getExpList (n->intrinsicF.args, 1)); mcPretty_setNeedSpace (p); outText (p, (char *) "|=", 2); mcPretty_setNeedSpace (p); @@ -13966,13 +14861,15 @@ static void doInclC (mcPretty_pretty p, decl_node n) outText (p, (char *) "<<", 2); mcPretty_setNeedSpace (p); outText (p, (char *) "(", 1); - doExprC (p, getExpList (n->funccallF.args, 2)); + doExprC (p, getExpList (n->intrinsicF.args, 2)); doSubtractC (p, lo); mcPretty_setNeedSpace (p); outText (p, (char *) "))", 2); } else - M2RTS_HALT (-1); /* metaError0 ('expecting two parameters to INCL') */ + { + M2RTS_HALT (-1); /* metaError0 ('expecting two parameters to INCL') */ + } } } @@ -13985,14 +14882,14 @@ static void doExclC (mcPretty_pretty p, decl_node n) { decl_node lo; - mcDebug_assert (isFuncCall (n)); - if (n->funccallF.args != NULL) + mcDebug_assert (isIntrinsic (n)); + if (n->intrinsicF.args != NULL) { /* avoid gcc warning by using compound statement even if not strictly necessary. */ - if ((expListLen (n->funccallF.args)) == 2) + if ((expListLen (n->intrinsicF.args)) == 2) { - doExprC (p, getExpList (n->funccallF.args, 1)); - lo = getSetLow (getExpList (n->funccallF.args, 1)); + doExprC (p, getExpList (n->intrinsicF.args, 1)); + lo = getSetLow (getExpList (n->intrinsicF.args, 1)); mcPretty_setNeedSpace (p); outText (p, (char *) "&=", 2); mcPretty_setNeedSpace (p); @@ -14001,13 +14898,15 @@ static void doExclC (mcPretty_pretty p, decl_node n) outText (p, (char *) "<<", 2); mcPretty_setNeedSpace (p); outText (p, (char *) "(", 1); - doExprC (p, getExpList (n->funccallF.args, 2)); + doExprC (p, getExpList (n->intrinsicF.args, 2)); doSubtractC (p, lo); mcPretty_setNeedSpace (p); outText (p, (char *) ")))", 3); } else - M2RTS_HALT (-1); /* metaError0 ('expecting two parameters to EXCL') */ + { + M2RTS_HALT (-1); /* metaError0 ('expecting two parameters to EXCL') */ + } } } @@ -14020,35 +14919,41 @@ static void doNewC (mcPretty_pretty p, decl_node n) { decl_node t; - mcDebug_assert (isFuncCall (n)); - if (n->funccallF.args == NULL) - M2RTS_HALT (-1); + mcDebug_assert (isIntrinsic (n)); + if (n->intrinsicF.args == NULL) + { + M2RTS_HALT (-1); + } else - if ((expListLen (n->funccallF.args)) == 1) - { - keyc_useStorage (); - outText (p, (char *) "Storage_ALLOCATE", 16); - mcPretty_setNeedSpace (p); - outText (p, (char *) "((void **)", 10); - mcPretty_setNeedSpace (p); - outText (p, (char *) "&", 1); - doExprC (p, getExpList (n->funccallF.args, 1)); - outText (p, (char *) ",", 1); - mcPretty_setNeedSpace (p); - t = decl_skipType (decl_getType (getExpList (n->funccallF.args, 1))); - if (decl_isPointer (t)) - { - t = decl_getType (t); - outText (p, (char *) "sizeof", 6); - mcPretty_setNeedSpace (p); - outText (p, (char *) "(", 1); - doTypeNameC (p, t); - mcPretty_noSpace (p); - outText (p, (char *) "))", 2); - } - else - mcMetaError_metaError1 ((char *) "expecting a pointer type variable as the argument to NEW, rather than {%1ad}", 76, (unsigned char *) &t, (sizeof (t)-1)); - } + { + if ((expListLen (n->intrinsicF.args)) == 1) + { + keyc_useStorage (); + outText (p, (char *) "Storage_ALLOCATE", 16); + mcPretty_setNeedSpace (p); + outText (p, (char *) "((void **)", 10); + mcPretty_setNeedSpace (p); + outText (p, (char *) "&", 1); + doExprC (p, getExpList (n->intrinsicF.args, 1)); + outText (p, (char *) ",", 1); + mcPretty_setNeedSpace (p); + t = decl_skipType (decl_getType (getExpList (n->intrinsicF.args, 1))); + if (decl_isPointer (t)) + { + t = decl_getType (t); + outText (p, (char *) "sizeof", 6); + mcPretty_setNeedSpace (p); + outText (p, (char *) "(", 1); + doTypeNameC (p, t); + mcPretty_noSpace (p); + outText (p, (char *) "))", 2); + } + else + { + mcMetaError_metaError1 ((char *) "expecting a pointer type variable as the argument to NEW, rather than {%1ad}", 76, (unsigned char *) &t, (sizeof (t)-1)); + } + } + } } @@ -14060,37 +14965,45 @@ static void doDisposeC (mcPretty_pretty p, decl_node n) { decl_node t; - mcDebug_assert (isFuncCall (n)); - if (n->funccallF.args == NULL) - M2RTS_HALT (-1); + mcDebug_assert (isIntrinsic (n)); + if (n->intrinsicF.args == NULL) + { + M2RTS_HALT (-1); + } else - if ((expListLen (n->funccallF.args)) == 1) - { - keyc_useStorage (); - outText (p, (char *) "Storage_DEALLOCATE", 18); - mcPretty_setNeedSpace (p); - outText (p, (char *) "((void **)", 10); - mcPretty_setNeedSpace (p); - outText (p, (char *) "&", 1); - doExprC (p, getExpList (n->funccallF.args, 1)); - outText (p, (char *) ",", 1); - mcPretty_setNeedSpace (p); - t = decl_skipType (decl_getType (getExpList (n->funccallF.args, 1))); - if (decl_isPointer (t)) - { - t = decl_getType (t); - outText (p, (char *) "sizeof", 6); - mcPretty_setNeedSpace (p); - outText (p, (char *) "(", 1); - doTypeNameC (p, t); - mcPretty_noSpace (p); - outText (p, (char *) "))", 2); - } - else - mcMetaError_metaError1 ((char *) "expecting a pointer type variable as the argument to DISPOSE, rather than {%1ad}", 80, (unsigned char *) &t, (sizeof (t)-1)); - } - else - M2RTS_HALT (-1); /* metaError0 ('expecting a single parameter to DISPOSE') */ + { + if ((expListLen (n->intrinsicF.args)) == 1) + { + keyc_useStorage (); + outText (p, (char *) "Storage_DEALLOCATE", 18); + mcPretty_setNeedSpace (p); + outText (p, (char *) "((void **)", 10); + mcPretty_setNeedSpace (p); + outText (p, (char *) "&", 1); + doExprC (p, getExpList (n->intrinsicF.args, 1)); + outText (p, (char *) ",", 1); + mcPretty_setNeedSpace (p); + t = decl_skipType (decl_getType (getExpList (n->intrinsicF.args, 1))); + if (decl_isPointer (t)) + { + t = decl_getType (t); + outText (p, (char *) "sizeof", 6); + mcPretty_setNeedSpace (p); + outText (p, (char *) "(", 1); + doTypeNameC (p, t); + mcPretty_noSpace (p); + outText (p, (char *) "))", 2); + } + else + { + mcMetaError_metaError1 ((char *) "expecting a pointer type variable as the argument to DISPOSE, rather than {%1ad}", 80, (unsigned char *) &t, (sizeof (t)-1)); + } + } + else + { + M2RTS_HALT (-1); /* metaError0 ('expecting a single parameter to DISPOSE') */ + } + } } @@ -14100,21 +15013,20 @@ static void doDisposeC (mcPretty_pretty p, decl_node n) static void doCapC (mcPretty_pretty p, decl_node n) { - mcDebug_assert (isFuncCall (n)); - if (n->funccallF.args == NULL) - M2RTS_HALT (-1); - else - if ((expListLen (n->funccallF.args)) == 1) - { - keyc_useCtype (); - outText (p, (char *) "toupper", 7); - mcPretty_setNeedSpace (p); - outText (p, (char *) "(", 1); - doExprC (p, getExpList (n->funccallF.args, 1)); - outText (p, (char *) ")", 1); - } - else + mcDebug_assert (isUnary (n)); + if (n->unaryF.arg == NULL) + { M2RTS_HALT (-1); /* metaError0 ('expecting a single parameter to CAP') */ + } + else + { + keyc_useCtype (); + outText (p, (char *) "toupper", 7); + mcPretty_setNeedSpace (p); + outText (p, (char *) "(", 1); + doExprC (p, n->unaryF.arg); + outText (p, (char *) ")", 1); + } } @@ -14124,27 +15036,23 @@ static void doCapC (mcPretty_pretty p, decl_node n) static void doLengthC (mcPretty_pretty p, decl_node n) { - decl_node v; - - mcDebug_assert (isFuncCall (n)); - if (n->funccallF.args == NULL) - M2RTS_HALT (-1); - else - if ((expListLen (n->funccallF.args)) == 1) - { - keyc_useM2RTS (); - outText (p, (char *) "M2RTS_Length", 12); - mcPretty_setNeedSpace (p); - outText (p, (char *) "(", 1); - v = getExpList (n->funccallF.args, 1); - doExprC (p, v); - outText (p, (char *) ",", 1); - mcPretty_setNeedSpace (p); - doFuncHighC (p, v); - outText (p, (char *) ")", 1); - } - else + mcDebug_assert (isUnary (n)); + if (n->unaryF.arg == NULL) + { M2RTS_HALT (-1); /* metaError0 ('expecting a single parameter to LENGTH') */ + } + else + { + keyc_useM2RTS (); + outText (p, (char *) "M2RTS_Length", 12); + mcPretty_setNeedSpace (p); + outText (p, (char *) "(", 1); + doExprC (p, n->unaryF.arg); + outText (p, (char *) ",", 1); + mcPretty_setNeedSpace (p); + doFuncHighC (p, n->unaryF.arg); + outText (p, (char *) ")", 1); + } } @@ -14156,11 +15064,15 @@ static void doAbsC (mcPretty_pretty p, decl_node n) { decl_node t; - mcDebug_assert (isFuncCall (n)); - if ((n->funccallF.args != NULL) && ((expListLen (n->funccallF.args)) == 1)) - t = getExprType (n); + mcDebug_assert (isUnary (n)); + if (n->unaryF.arg == NULL) + { + M2RTS_HALT (-1); + } else - M2RTS_HALT (-1); + { + t = getExprType (n); + } if (t == longintN) { keyc_useLabs (); @@ -14168,26 +15080,36 @@ static void doAbsC (mcPretty_pretty p, decl_node n) } else if (t == integerN) { + /* avoid dangling else. */ keyc_useAbs (); outText (p, (char *) "abs", 3); } else if (t == realN) { + /* avoid dangling else. */ keyc_useFabs (); outText (p, (char *) "fabs", 4); } else if (t == longrealN) { + /* avoid dangling else. */ keyc_useFabsl (); outText (p, (char *) "fabsl", 5); } else if (t == cardinalN) - {} /* empty. */ + { + /* avoid dangling else. */ + } else - /* do nothing. */ - M2RTS_HALT (-1); + { + /* avoid dangling else. */ + /* do nothing. */ + M2RTS_HALT (-1); + } mcPretty_setNeedSpace (p); - doFuncArgsC (p, n, (Indexing_Index) NULL, TRUE); + outText (p, (char *) "(", 1); + doExprC (p, n->unaryF.arg); + outText (p, (char *) ")", 1); } @@ -14197,22 +15119,14 @@ static void doAbsC (mcPretty_pretty p, decl_node n) static void doValC (mcPretty_pretty p, decl_node n) { - mcDebug_assert (isFuncCall (n)); - if (n->funccallF.args == NULL) - M2RTS_HALT (-1); - else - if ((expListLen (n->funccallF.args)) == 2) - { - outText (p, (char *) "(", 1); - doTypeNameC (p, getExpList (n->funccallF.args, 1)); - outText (p, (char *) ")", 1); - mcPretty_setNeedSpace (p); - outText (p, (char *) "(", 1); - doExprC (p, getExpList (n->funccallF.args, 2)); - outText (p, (char *) ")", 1); - } - else - M2RTS_HALT (-1); + mcDebug_assert (isBinary (n)); + outText (p, (char *) "(", 1); + doTypeNameC (p, n->binaryF.left); + outText (p, (char *) ")", 1); + mcPretty_setNeedSpace (p); + outText (p, (char *) "(", 1); + doExprC (p, n->binaryF.right); + outText (p, (char *) ")", 1); } @@ -14223,20 +15137,10 @@ static void doValC (mcPretty_pretty p, decl_node n) static void doMinC (mcPretty_pretty p, decl_node n) { decl_node t; - decl_node a; - mcDebug_assert (isFuncCall (n)); - if (n->funccallF.args == NULL) - M2RTS_HALT (-1); - else - if ((expListLen (n->funccallF.args)) == 1) - { - a = getExpList (n->funccallF.args, 1); - t = getExprType (a); - doExprC (p, getMin (t)); - } - else - M2RTS_HALT (-1); + mcDebug_assert (isUnary (n)); + t = getExprType (n->unaryF.arg); + doExprC (p, getMin (t)); } @@ -14247,63 +15151,36 @@ static void doMinC (mcPretty_pretty p, decl_node n) static void doMaxC (mcPretty_pretty p, decl_node n) { decl_node t; - decl_node a; - mcDebug_assert (isFuncCall (n)); - if (n->funccallF.args == NULL) - M2RTS_HALT (-1); - else - if ((expListLen (n->funccallF.args)) == 1) - { - a = getExpList (n->funccallF.args, 1); - t = getExprType (a); - doExprC (p, getMax (t)); - } - else - M2RTS_HALT (-1); + mcDebug_assert (isUnary (n)); + t = getExprType (n->unaryF.arg); + doExprC (p, getMax (t)); } /* - isIntrinsic - returns if, n, is an instrinsic procedure. + isIntrinsic - returns if, n, is an intrinsic procedure. + The intrinsic functions are represented as unary and binary nodes. */ static unsigned int isIntrinsic (decl_node n) { - switch (n->funccallF.function->kind) + switch (n->kind) { - case halt: - case max: - case min: - case cast: - case val: - case adr: - case size: - case tsize: - case float_: - case trunc: - case ord: - case chr: - case cap: - case abs_: - case im: - case re: - case cmplx: - case high: + case throw: case inc: case dec: case incl: case excl: case new: case dispose: - case length: - case throw: + case halt: return TRUE; break; default: - return (isFuncCall (n)) && (n->funccallF.function == haltN); + return FALSE; break; } } @@ -14315,19 +15192,20 @@ static unsigned int isIntrinsic (decl_node n) static void doHalt (mcPretty_pretty p, decl_node n) { - mcDebug_assert (isFuncCall (n)); - if ((n->funccallF.args == NULL) || ((expListLen (n->funccallF.args)) == 0)) + mcDebug_assert (n->kind == halt); + if ((n->intrinsicF.args == NULL) || ((expListLen (n->intrinsicF.args)) == 0)) { outText (p, (char *) "M2RTS_HALT", 10); mcPretty_setNeedSpace (p); outText (p, (char *) "(-1)", 4); } - else if ((expListLen (n->funccallF.args)) == 1) + else if ((expListLen (n->intrinsicF.args)) == 1) { + /* avoid dangling else. */ outText (p, (char *) "M2RTS_HALT", 10); mcPretty_setNeedSpace (p); outText (p, (char *) "(", 1); - doExprC (p, getExpList (n->funccallF.args, 1)); + doExprC (p, getExpList (n->intrinsicF.args, 1)); outText (p, (char *) ")", 1); } } @@ -14341,20 +15219,28 @@ static void doReC (mcPretty_pretty p, decl_node n) { decl_node t; - mcDebug_assert (isFuncCall (n)); - if ((n->funccallF.args != NULL) && ((expListLen (n->funccallF.args)) == 1)) - t = getExprType (n); + mcDebug_assert (n->kind == re); + if (n->unaryF.arg != NULL) + { + t = getExprType (n->unaryF.arg); + } else - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } if (t == realN) { keyc_useComplex (); outText (p, (char *) "creal", 5); } else - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } mcPretty_setNeedSpace (p); - doFuncArgsC (p, n, (Indexing_Index) NULL, TRUE); + outText (p, (char *) "(", 1); + doExprC (p, n->unaryF.arg); + outText (p, (char *) ")", 1); } @@ -14366,20 +15252,28 @@ static void doImC (mcPretty_pretty p, decl_node n) { decl_node t; - mcDebug_assert (isFuncCall (n)); - if ((n->funccallF.args != NULL) && ((expListLen (n->funccallF.args)) == 1)) - t = getExprType (n); + mcDebug_assert (n->kind == im); + if (n->unaryF.arg != NULL) + { + t = getExprType (n->unaryF.arg); + } else - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } if (t == realN) { keyc_useComplex (); outText (p, (char *) "cimag", 5); } else - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } mcPretty_setNeedSpace (p); - doFuncArgsC (p, n, (Indexing_Index) NULL, TRUE); + outText (p, (char *) "(", 1); + doExprC (p, n->unaryF.arg); + outText (p, (char *) ")", 1); } @@ -14389,30 +15283,22 @@ static void doImC (mcPretty_pretty p, decl_node n) static void doCmplx (mcPretty_pretty p, decl_node n) { - mcDebug_assert (isFuncCall (n)); - if (n->funccallF.args != NULL) - if ((expListLen (n->funccallF.args)) == 2) - { - keyc_useComplex (); - mcPretty_setNeedSpace (p); - outText (p, (char *) "(", 1); - doExprC (p, getExpList (n->funccallF.args, 1)); - outText (p, (char *) ")", 1); - mcPretty_setNeedSpace (p); - outText (p, (char *) "+", 1); - mcPretty_setNeedSpace (p); - outText (p, (char *) "(", 1); - doExprC (p, getExpList (n->funccallF.args, 2)); - mcPretty_setNeedSpace (p); - outText (p, (char *) "*", 1); - mcPretty_setNeedSpace (p); - outText (p, (char *) "I", 1); - outText (p, (char *) ")", 1); - } - else - M2RTS_HALT (-1); /* metaError0 ('expecting two parameters to CMPLX') */ - else - M2RTS_HALT (-1); /* metaError0 ('expecting two parameters to CMPLX') */ + mcDebug_assert (isBinary (n)); + keyc_useComplex (); + mcPretty_setNeedSpace (p); + outText (p, (char *) "(", 1); + doExprC (p, n->binaryF.left); + outText (p, (char *) ")", 1); + mcPretty_setNeedSpace (p); + outText (p, (char *) "+", 1); + mcPretty_setNeedSpace (p); + outText (p, (char *) "(", 1); + doExprC (p, n->binaryF.right); + mcPretty_setNeedSpace (p); + outText (p, (char *) "*", 1); + mcPretty_setNeedSpace (p); + outText (p, (char *) "I", 1); + outText (p, (char *) ")", 1); } @@ -14422,122 +15308,120 @@ static void doCmplx (mcPretty_pretty p, decl_node n) static void doIntrinsicC (mcPretty_pretty p, decl_node n) { - if (n->funccallF.function == haltN) - doHalt (p, n); - else - switch (n->funccallF.function->kind) - { - case halt: - doHalt (p, n); - break; - - case val: - doValC (p, n); - break; - - case adr: - doAdrC (p, n); - break; - - case size: - case tsize: - outText (p, (char *) "sizeof", 6); - mcPretty_setNeedSpace (p); - doFuncArgsC (p, n, (Indexing_Index) NULL, TRUE); - break; + mcDebug_assert (isIntrinsic (n)); + doCommentC (p, n->intrinsicF.intrinsicComment.body); + switch (n->kind) + { + case throw: + doThrowC (p, n); + break; - case float_: - outText (p, (char *) "(double)", 8); - mcPretty_setNeedSpace (p); - doFuncArgsC (p, n, (Indexing_Index) NULL, TRUE); - break; + case halt: + doHalt (p, n); + break; - case trunc: - outText (p, (char *) "(int)", 5); - mcPretty_setNeedSpace (p); - doFuncArgsC (p, n, (Indexing_Index) NULL, TRUE); - break; + case inc: + doInc (p, n); + break; - case ord: - outText (p, (char *) "(unsigned int)", 14); - mcPretty_setNeedSpace (p); - doFuncArgsC (p, n, (Indexing_Index) NULL, TRUE); - break; + case dec: + doDec (p, n); + break; - case chr: - outText (p, (char *) "(char)", 6); - mcPretty_setNeedSpace (p); - doFuncArgsC (p, n, (Indexing_Index) NULL, TRUE); - break; + case incl: + doInclC (p, n); + break; - case cap: - doCapC (p, n); - break; + case excl: + doExclC (p, n); + break; - case abs_: - doAbsC (p, n); - break; + case new: + doNewC (p, n); + break; - case high: - doFuncHighC (p, getExpList (n->funccallF.args, 1)); - break; + case dispose: + doDisposeC (p, n); + break; - case inc: - doInc (p, n); - break; - case dec: - doDec (p, n); - break; + default: + CaseException ("../../gcc-versionno/gcc/gm2/mc/decl.def", 20, 1); + } + outText (p, (char *) ";", 1); + doAfterCommentC (p, n->intrinsicF.intrinsicComment.after); +} - case incl: - doInclC (p, n); - break; - case excl: - doExclC (p, n); - break; +/* + isIntrinsicFunction - returns true if, n, is an instrinsic function. +*/ - case new: - doNewC (p, n); - break; +static unsigned int isIntrinsicFunction (decl_node n) +{ + switch (n->kind) + { + case val: + case adr: + case size: + case tsize: + case float_: + case trunc: + case ord: + case chr: + case cap: + case abs_: + case high: + case length: + case min: + case max: + case throw: + case re: + case im: + case cmplx: + return TRUE; + break; - case dispose: - doDisposeC (p, n); - break; - case length: - doLengthC (p, n); - break; + default: + return FALSE; + break; + } +} - case min: - doMinC (p, n); - break; - case max: - doMaxC (p, n); - break; +/* + doSizeC - +*/ - case throw: - doThrowC (p, n); - break; +static void doSizeC (mcPretty_pretty p, decl_node n) +{ + mcDebug_assert (isUnary (n)); + outText (p, (char *) "sizeof (", 8); + doExprC (p, n->unaryF.arg); + outText (p, (char *) ")", 1); +} - case re: - doReC (p, n); - break; - case im: - doImC (p, n); - break; +/* + doConvertC - +*/ - case cmplx: - doCmplx (p, n); - break; +static void doConvertC (mcPretty_pretty p, decl_node n, char *conversion_, unsigned int _conversion_high) +{ + char conversion[_conversion_high+1]; + /* make a local copy of each unbounded array. */ + memcpy (conversion, conversion_, _conversion_high+1); - default: - CaseException ("../../gcc-versionno/gcc/gm2/mc/decl.def", 20, 1); - } + mcDebug_assert (isUnary (n)); + mcPretty_setNeedSpace (p); + outText (p, (char *) "(", 1); + outText (p, (char *) conversion, _conversion_high); + mcPretty_setNeedSpace (p); + outText (p, (char *) "(", 1); + doExprC (p, n->unaryF.arg); + outText (p, (char *) "))", 2); } @@ -14549,7 +15433,9 @@ static decl_node getFuncFromExpr (decl_node n) { n = decl_skipType (decl_getType (n)); while ((n != procN) && (! (decl_isProcType (n)))) - n = decl_skipType (decl_getType (n)); + { + n = decl_skipType (decl_getType (n)); + } return n; } @@ -14563,9 +15449,7 @@ static void doFuncExprC (mcPretty_pretty p, decl_node n) decl_node t; mcDebug_assert (isFuncCall (n)); - if (isIntrinsic (n)) - doIntrinsicC (p, n); - else if (decl_isProcedure (n->funccallF.function)) + if (decl_isProcedure (n->funccallF.function)) { doFQDNameC (p, n->funccallF.function, TRUE); mcPretty_setNeedSpace (p); @@ -14579,7 +15463,9 @@ static void doFuncExprC (mcPretty_pretty p, decl_node n) mcPretty_setNeedSpace (p); t = getFuncFromExpr (n->funccallF.function); if (t == procN) - doProcTypeArgsC (p, n, (Indexing_Index) NULL, TRUE); + { + doProcTypeArgsC (p, n, (Indexing_Index) NULL, TRUE); + } else { mcDebug_assert (decl_isProcType (t)); @@ -14612,7 +15498,9 @@ static void doCaseStatementC (mcPretty_pretty p, decl_node n, unsigned int needB mcPretty_setindent (p, (mcPretty_getindent (p))+indentationC); doStatementSequenceC (p, n); if (needBreak) - outText (p, (char *) "break;\\n", 8); + { + outText (p, (char *) "break;\\n", 8); + } p = mcPretty_popPretty (p); } @@ -14684,9 +15572,13 @@ static void doException (mcPretty_pretty p, char *a_, unsigned int _a_high, decl keyc_useException (); if (lang == ansiCP) - doExceptionCP (p, (char *) a, _a_high, n); + { + doExceptionCP (p, (char *) a, _a_high, n); + } else - doExceptionC (p, (char *) a, _a_high, n); + { + doExceptionC (p, (char *) a, _a_high, n); + } } @@ -14788,7 +15680,9 @@ static void doCaseLabels (mcPretty_pretty p, decl_node n, unsigned int needBreak mcPretty_setindent (p, (mcPretty_getindent (p))+indentationC); doStatementSequenceC (p, n->caselabellistF.statements); if (needBreak) - outText (p, (char *) "break;\\n\\n", 10); + { + outText (p, (char *) "break;\\n\\n", 10); + } p = mcPretty_popPretty (p); } @@ -14833,7 +15727,9 @@ static void doCaseIfLabels (mcPretty_pretty p, decl_node e, decl_node n, unsigne doRangeIfListC (p, e, n->caselabellistF.caseList); outText (p, (char *) ")\\n", 3); if (h == 1) - doCompoundStmt (p, n->caselabellistF.statements); + { + doCompoundStmt (p, n->caselabellistF.statements); + } else { outText (p, (char *) "{\\n", 3); @@ -14943,7 +15839,9 @@ static unsigned int canUseSwitchCaseLabels (decl_node n) { r = Indexing_GetIndice (l->caselistF.rangePairs, i); if ((r->rangeF.hi != NULL) && (r->rangeF.lo != r->rangeF.hi)) - return FALSE; + { + return FALSE; + } i += 1; } return TRUE; @@ -14969,7 +15867,9 @@ static unsigned int canUseSwitch (decl_node n) { c = Indexing_GetIndice (n->caseF.caseLabelList, i); if (! (canUseSwitchCaseLabels (c))) - return FALSE; + { + return FALSE; + } i += 1; } return TRUE; @@ -15049,33 +15949,80 @@ static void doStatementsC (mcPretty_pretty p, decl_node s) if (s == NULL) {} /* empty. */ else if (decl_isStatementSequence (s)) - doStatementSequenceC (p, s); + { + /* avoid dangling else. */ + doStatementSequenceC (p, s); + } else if (isComment (s)) - doCommentC (p, s); + { + /* avoid dangling else. */ + doCommentC (p, s); + } else if (decl_isExit (s)) - doExitC (p, s); + { + /* avoid dangling else. */ + doExitC (p, s); + } else if (decl_isReturn (s)) - doReturnC (p, s); + { + /* avoid dangling else. */ + doReturnC (p, s); + } else if (isAssignment (s)) - doAssignmentC (p, s); + { + /* avoid dangling else. */ + doAssignmentC (p, s); + } else if (decl_isIf (s)) - doIfC (p, s); + { + /* avoid dangling else. */ + doIfC (p, s); + } else if (decl_isFor (s)) - doForC (p, s); + { + /* avoid dangling else. */ + doForC (p, s); + } else if (decl_isRepeat (s)) - doRepeatC (p, s); + { + /* avoid dangling else. */ + doRepeatC (p, s); + } else if (decl_isWhile (s)) - doWhileC (p, s); + { + /* avoid dangling else. */ + doWhileC (p, s); + } + else if (isIntrinsic (s)) + { + /* avoid dangling else. */ + doIntrinsicC (p, s); + } else if (isFuncCall (s)) - doFuncCallC (p, s); + { + /* avoid dangling else. */ + doFuncCallC (p, s); + } else if (decl_isCase (s)) - doCaseC (p, s); + { + /* avoid dangling else. */ + doCaseC (p, s); + } else if (decl_isLoop (s)) - doLoopC (p, s); + { + /* avoid dangling else. */ + doLoopC (p, s); + } else if (decl_isExit (s)) - doExitC (p, s); + { + /* avoid dangling else. */ + doExitC (p, s); + } else - M2RTS_HALT (-1); /* need to handle another s^.kind. */ + { + /* avoid dangling else. */ + M2RTS_HALT (-1); /* need to handle another s^.kind. */ + } } static void stop (void) @@ -15139,7 +16086,7 @@ static void includeParameters (decl_node n) static unsigned int isHalt (decl_node n) { - return (n->funccallF.function == haltN) || (n->funccallF.function->kind == halt); + return n->kind == halt; } @@ -15174,7 +16121,9 @@ static unsigned int isLastStatementSequence (decl_node n, decl_isNodeF q) mcDebug_assert (decl_isStatementSequence (n)); h = Indexing_HighIndice (n->stmtF.statements); if (h > 0) - return isLastStatement ((decl_node) Indexing_GetIndice (n->stmtF.statements, h), q); + { + return isLastStatement ((decl_node) Indexing_GetIndice (n->stmtF.statements, h), q); + } return FALSE; } @@ -15190,11 +16139,17 @@ static unsigned int isLastStatementIf (decl_node n, decl_isNodeF q) mcDebug_assert (decl_isIf (n)); ret = TRUE; if ((n->ifF.elsif != NULL) && ret) - ret = isLastStatement (n->ifF.elsif, q); + { + ret = isLastStatement (n->ifF.elsif, q); + } if ((n->ifF.then != NULL) && ret) - ret = isLastStatement (n->ifF.then, q); + { + ret = isLastStatement (n->ifF.then, q); + } if ((n->ifF.else_ != NULL) && ret) - ret = isLastStatement (n->ifF.else_, q); + { + ret = isLastStatement (n->ifF.else_, q); + } return ret; } @@ -15210,11 +16165,17 @@ static unsigned int isLastStatementElsif (decl_node n, decl_isNodeF q) mcDebug_assert (decl_isElsif (n)); ret = TRUE; if ((n->elsifF.elsif != NULL) && ret) - ret = isLastStatement (n->elsifF.elsif, q); + { + ret = isLastStatement (n->elsifF.elsif, q); + } if ((n->elsifF.then != NULL) && ret) - ret = isLastStatement (n->elsifF.then, q); + { + ret = isLastStatement (n->elsifF.then, q); + } if ((n->elsifF.else_ != NULL) && ret) - ret = isLastStatement (n->elsifF.else_, q); + { + ret = isLastStatement (n->elsifF.else_, q); + } return ret; } @@ -15242,7 +16203,9 @@ static unsigned int isLastStatementCase (decl_node n, decl_isNodeF q) i += 1; } if (n->caseF.else_ != NULL) - ret = ret && (isLastStatement (n->caseF.else_, q)); + { + ret = ret && (isLastStatement (n->caseF.else_, q)); + } return ret; } @@ -15256,20 +16219,35 @@ static unsigned int isLastStatement (decl_node n, decl_isNodeF q) unsigned int ret; if (decl_isStatementSequence (n)) - return isLastStatementSequence (n, q); + { + return isLastStatementSequence (n, q); + } else if (decl_isProcedure (n)) { + /* avoid dangling else. */ mcDebug_assert (decl_isProcedure (n)); return isLastStatement (n->procedureF.beginStatements, q); } else if (decl_isIf (n)) - return isLastStatementIf (n, q); + { + /* avoid dangling else. */ + return isLastStatementIf (n, q); + } else if (decl_isElsif (n)) - return isLastStatementElsif (n, q); + { + /* avoid dangling else. */ + return isLastStatementElsif (n, q); + } else if (decl_isCase (n)) - return isLastStatementCase (n, q); + { + /* avoid dangling else. */ + return isLastStatementCase (n, q); + } else if ((*q.proc) (n)) - return TRUE; + { + /* avoid dangling else. */ + return TRUE; + } return FALSE; } @@ -15293,11 +16271,17 @@ static void doProcedureC (decl_node n) doLocalVarC (doP, n->procedureF.decls); doUnboundedParamCopyC (doP, n); if (s != (mcPretty_getcurline (doP))) - outText (doP, (char *) "\\n", 2); + { + outText (doP, (char *) "\\n", 2); + } doStatementsC (doP, n->procedureF.beginStatements); if (n->procedureF.returnType != NULL) - if (returnException && (! (isLastStatementReturn (n)))) - doException (doP, (char *) "ReturnException", 15, n); + { + if (returnException && (! (isLastStatementReturn (n)))) + { + doException (doP, (char *) "ReturnException", 15, n); + } + } doP = outKc (doP, (char *) "}\\n", 3); keyc_leaveScope (n); } @@ -15311,7 +16295,9 @@ static void outProceduresC (mcPretty_pretty p, scopeT s) { doP = p; if (debugDecl) - libc_printf ((char *) "seen %d procedures\\n", 20, Indexing_HighIndice (s.procedures)); + { + libc_printf ((char *) "seen %d procedures\\n", 20, Indexing_HighIndice (s.procedures)); + } Indexing_ForeachIndiceInIndexDo (s.procedures, (Indexing_IndexProcedure) {(Indexing_IndexProcedure_t) doProcedureC}); } @@ -15323,11 +16309,19 @@ static void outProceduresC (mcPretty_pretty p, scopeT s) static void output (decl_node n, nodeProcedure c, nodeProcedure t, nodeProcedure v) { if (decl_isConst (n)) - (*c.proc) (n); + { + (*c.proc) (n); + } else if (decl_isVar (n)) - (*v.proc) (n); + { + /* avoid dangling else. */ + (*v.proc) (n); + } else - (*t.proc) (n); + { + /* avoid dangling else. */ + (*t.proc) (n); + } } @@ -15354,11 +16348,17 @@ static dependentState allDependants (decl_node n) static dependentState walkDependants (alists_alist l, decl_node n) { if ((n == NULL) || (alists_isItemInList (doneQ, (void *) n))) - return completed; + { + return completed; + } else if (alists_isItemInList (l, (void *) n)) - return recursive; + { + /* avoid dangling else. */ + return recursive; + } else { + /* avoid dangling else. */ alists_includeItemIntoList (l, (void *) n); return doDependants (l, n); } @@ -15375,11 +16375,17 @@ static dependentState walkType (alists_alist l, decl_node n) t = decl_getType (n); if (alists_isItemInList (doneQ, (void *) t)) - return completed; + { + return completed; + } else if (alists_isItemInList (partialQ, (void *) t)) - return blocked; + { + /* avoid dangling else. */ + return blocked; + } else { + /* avoid dangling else. */ queueBlocked (t); return blocked; } @@ -15401,7 +16407,9 @@ static void db (char *a_, unsigned int _a_high, decl_node n) { outText (doP, (char *) a, _a_high); if (n != NULL) - outTextS (doP, gen (n)); + { + outTextS (doP, gen (n)); + } } } @@ -15418,7 +16426,9 @@ static void dbt (char *a_, unsigned int _a_high) memcpy (a, a_, _a_high+1); if (mcOptions_getDebugTopological ()) - outText (doP, (char *) a, _a_high); + { + outText (doP, (char *) a, _a_high); + } } @@ -15453,7 +16463,9 @@ static void dbs (dependentState s, decl_node n) CaseException ("../../gcc-versionno/gcc/gm2/mc/decl.def", 20, 1); } if (n != NULL) - outTextS (doP, gen (n)); + { + outTextS (doP, gen (n)); + } outText (doP, (char *) "}\\n", 3); } } @@ -15475,11 +16487,13 @@ static void dbq (decl_node n) } else if (alists_isItemInList (partialQ, (void *) n)) { + /* avoid dangling else. */ db ((char *) "{P", 2, n); outText (doP, (char *) "}", 1); } else if (alists_isItemInList (doneQ, (void *) n)) { + /* avoid dangling else. */ db ((char *) "{D", 2, n); outText (doP, (char *) "}", 1); } @@ -15582,7 +16596,9 @@ static dependentState walkVarient (alists_alist l, decl_node n) static void queueBlocked (decl_node n) { if (! ((alists_isItemInList (doneQ, (void *) n)) || (alists_isItemInList (partialQ, (void *) n)))) - addTodo (n); + { + addTodo (n); + } } @@ -15596,7 +16612,9 @@ static dependentState walkVar (alists_alist l, decl_node n) t = decl_getType (n); if (alists_isItemInList (doneQ, (void *) t)) - return completed; + { + return completed; + } else { queueBlocked (t); @@ -15624,7 +16642,9 @@ static dependentState walkEnumeration (alists_alist l, decl_node n) q = Indexing_GetIndice (n->enumerationF.listOfSons, i); s = walkDependants (l, q); if (s != completed) - return s; + { + return s; + } i += 1; } return s; @@ -15641,13 +16661,19 @@ static dependentState walkSubrange (alists_alist l, decl_node n) s = walkDependants (l, n->subrangeF.low); if (s != completed) - return s; + { + return s; + } s = walkDependants (l, n->subrangeF.high); if (s != completed) - return s; + { + return s; + } s = walkDependants (l, n->subrangeF.type); if (s != completed) - return s; + { + return s; + } return completed; } @@ -15662,10 +16688,14 @@ static dependentState walkSubscript (alists_alist l, decl_node n) s = walkDependants (l, n->subscriptF.expr); if (s != completed) - return s; + { + return s; + } s = walkDependants (l, n->subscriptF.type); if (s != completed) - return s; + { + return s; + } return completed; } @@ -15681,8 +16711,10 @@ static dependentState walkPointer (alists_alist l, decl_node n) /* if the type of, n, is done or partial then we can output pointer. */ t = decl_getType (n); if ((alists_isItemInList (partialQ, (void *) t)) || (alists_isItemInList (doneQ, (void *) t))) - /* pointer to partial can always generate a complete type. */ - return completed; + { + /* pointer to partial can always generate a complete type. */ + return completed; + } return walkType (l, n); } @@ -15701,10 +16733,14 @@ static dependentState walkArray (alists_alist l, decl_node n) s = walkDependants (l, n->arrayF.type); queueBlocked (n->arrayF.type); if (s == completed) - /* downgrade the completed to partial as it has not yet been written. */ - return partial; + { + /* downgrade the completed to partial as it has not yet been written. */ + return partial; + } else - return s; + { + return s; + } } return walkDependants (l, n->arrayF.subr); } @@ -15720,10 +16756,14 @@ static dependentState walkConst (alists_alist l, decl_node n) s = walkDependants (l, n->constF.type); if (s != completed) - return s; + { + return s; + } s = walkDependants (l, n->constF.value); if (s != completed) - return s; + { + return s; + } return completed; } @@ -15738,8 +16778,10 @@ static dependentState walkVarParam (alists_alist l, decl_node n) t = decl_getType (n); if (alists_isItemInList (partialQ, (void *) t)) - /* parameter can be issued from a partial. */ - return completed; + { + /* parameter can be issued from a partial. */ + return completed; + } return walkDependants (l, t); } @@ -15754,8 +16796,10 @@ static dependentState walkParam (alists_alist l, decl_node n) t = decl_getType (n); if (alists_isItemInList (partialQ, (void *) t)) - /* parameter can be issued from a partial. */ - return completed; + { + /* parameter can be issued from a partial. */ + return completed; + } return walkDependants (l, t); } @@ -15770,8 +16814,10 @@ static dependentState walkOptarg (alists_alist l, decl_node n) t = decl_getType (n); if (alists_isItemInList (partialQ, (void *) t)) - /* parameter can be issued from a partial. */ - return completed; + { + /* parameter can be issued from a partial. */ + return completed; + } return walkDependants (l, t); } @@ -15794,11 +16840,13 @@ static dependentState walkRecordField (alists_alist l, decl_node n) } else if (alists_isItemInList (doneQ, (void *) t)) { + /* avoid dangling else. */ dbs ((dependentState) completed, n); return completed; } else { + /* avoid dangling else. */ addTodo (t); dbs ((dependentState) blocked, n); dbq (n); @@ -15877,7 +16925,9 @@ static dependentState walkProcType (alists_alist l, decl_node n) /* proctype can be generated from partial types. */ s = walkDependants (l, t); if (s != completed) - return s; + { + return s; + } } return walkParameters (l, n->proctypeF.parameters); } @@ -15893,7 +16943,9 @@ static dependentState walkProcedure (alists_alist l, decl_node n) s = walkDependants (l, decl_getType (n)); if (s != completed) - return s; + { + return s; + } return walkParameters (l, n->procedureF.parameters); } @@ -15916,7 +16968,9 @@ static dependentState walkParameters (alists_alist l, Indexing_Index p) q = Indexing_GetIndice (p, i); s = walkDependants (l, q); if (s != completed) - return s; + { + return s; + } i += 1; } return completed; @@ -15943,7 +16997,9 @@ static dependentState walkUnary (alists_alist l, decl_node n) s = walkDependants (l, n->unaryF.arg); if (s != completed) - return s; + { + return s; + } return walkDependants (l, n->unaryF.resultType); } @@ -15958,10 +17014,14 @@ static dependentState walkBinary (alists_alist l, decl_node n) s = walkDependants (l, n->binaryF.left); if (s != completed) - return s; + { + return s; + } s = walkDependants (l, n->binaryF.right); if (s != completed) - return s; + { + return s; + } return walkDependants (l, n->binaryF.resultType); } @@ -15976,10 +17036,14 @@ static dependentState walkComponentRef (alists_alist l, decl_node n) s = walkDependants (l, n->componentrefF.rec); if (s != completed) - return s; + { + return s; + } s = walkDependants (l, n->componentrefF.field); if (s != completed) - return s; + { + return s; + } return walkDependants (l, n->componentrefF.resultType); } @@ -15994,10 +17058,14 @@ static dependentState walkPointerRef (alists_alist l, decl_node n) s = walkDependants (l, n->pointerrefF.ptr); if (s != completed) - return s; + { + return s; + } s = walkDependants (l, n->pointerrefF.field); if (s != completed) - return s; + { + return s; + } return walkDependants (l, n->pointerrefF.resultType); } @@ -16015,14 +17083,18 @@ static dependentState walkSetValue (alists_alist l, decl_node n) mcDebug_assert (decl_isSetValue (n)); s = walkDependants (l, n->setvalueF.type); if (s != completed) - return s; + { + return s; + } i = Indexing_LowIndice (n->setvalueF.values); j = Indexing_HighIndice (n->setvalueF.values); while (i <= j) { s = walkDependants (l, (decl_node) Indexing_GetIndice (n->setvalueF.values, i)); if (s != completed) - return s; + { + return s; + } i += 1; } return completed; @@ -16177,6 +17249,10 @@ static dependentState doDependants (alists_alist l, decl_node n) return walkPointerRef (l, n); break; + case not: + case abs_: + case min: + case max: case chr: case cap: case ord: @@ -16244,12 +17320,14 @@ static unsigned int tryComplete (decl_node n, nodeProcedure c, nodeProcedure t, } else if (((decl_isType (n)) && (decl_isTypeHidden (n))) && ((decl_getType (n)) == NULL)) { + /* avoid dangling else. */ /* can always emit hidden types. */ outputHidden (n); return TRUE; } else if ((allDependants (n)) == completed) { + /* avoid dangling else. */ output (n, c, t, v); return TRUE; } @@ -16271,6 +17349,7 @@ static unsigned int tryCompleteFromPartial (decl_node n, nodeProcedure t) } else if ((allDependants (n)) == completed) { + /* avoid dangling else. */ (*t.proc) (n); return TRUE; } @@ -16284,6 +17363,7 @@ static unsigned int tryCompleteFromPartial (decl_node n, nodeProcedure t) static void visitUnary (alists_alist v, decl_node n, nodeProcedure p) { + mcDebug_assert (isUnary (n)); visitNode (v, n->unaryF.arg, p); visitNode (v, n->unaryF.resultType, p); } @@ -16319,7 +17399,9 @@ static void visitBoolean (alists_alist v, decl_node n, nodeProcedure p) static void visitScope (alists_alist v, decl_node n, nodeProcedure p) { if (mustVisitScope) - visitNode (v, n, p); + { + visitNode (v, n, p); + } } @@ -16908,6 +17990,17 @@ static void visitSetValue (alists_alist v, decl_node n, nodeProcedure p) } +/* + visitIntrinsic - +*/ + +static void visitIntrinsic (alists_alist v, decl_node n, nodeProcedure p) +{ + mcDebug_assert (isIntrinsic (n)); + visitNode (v, n->intrinsicF.args, p); +} + + /* visitDependants - helper procedure function called from visitNode. node n has just been visited, this procedure will @@ -16943,32 +18036,20 @@ static void visitDependants (alists_alist v, decl_node n, nodeProcedure p) case comment: break; + case throw: case halt: - break; - case new: - break; - case dispose: - break; - case length: - break; - case inc: - break; - case dec: - break; - case incl: - break; - case excl: + visitIntrinsic (v, n, p); break; case boolean: - visitBoolean (v, n, p); /* handled in funccall. */ + visitBoolean (v, n, p); break; case nil: @@ -17180,24 +18261,74 @@ static void visitDependants (alists_alist v, decl_node n, nodeProcedure p) visitBinary (v, n, p); break; - case re: + case re: + visitUnary (v, n, p); + break; + case im: + visitUnary (v, n, p); + break; + case abs_: + visitUnary (v, n, p); + break; + case chr: + visitUnary (v, n, p); + break; + case cap: + visitUnary (v, n, p); + break; + case high: + visitUnary (v, n, p); + break; + case ord: + visitUnary (v, n, p); + break; + case float_: + visitUnary (v, n, p); + break; + case trunc: + visitUnary (v, n, p); + break; + case not: + visitUnary (v, n, p); + break; + case neg: + visitUnary (v, n, p); + break; + case adr: + visitUnary (v, n, p); + break; + case size: + visitUnary (v, n, p); + break; + case tsize: + visitUnary (v, n, p); + break; + case min: + visitUnary (v, n, p); + break; + case max: - case throw: + visitUnary (v, n, p); + break; + case constexp: + visitUnary (v, n, p); + break; + case deref: visitUnary (v, n, p); break; @@ -17698,7 +18829,9 @@ static unsigned int tryPartial (decl_node n, nodeProcedure pt) { q = decl_getType (n); while (decl_isPointer (q)) - q = decl_getType (q); + { + q = decl_getType (q); + } if (q != NULL) { /* avoid gcc warning by using compound statement even if not strictly necessary. */ @@ -17710,6 +18843,7 @@ static unsigned int tryPartial (decl_node n, nodeProcedure pt) } else if (decl_isArray (q)) { + /* avoid dangling else. */ (*pt.proc) (n); addTodo (q); return TRUE; @@ -17741,11 +18875,19 @@ static void outputPartial (decl_node n) mcPretty_setNeedSpace (doP); s = getFQstring (n); if (decl_isRecord (q)) - s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "_r", 2))); + { + s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "_r", 2))); + } else if (decl_isArray (q)) - s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "_a", 2))); + { + /* avoid dangling else. */ + s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "_a", 2))); + } else if (decl_isProcType (q)) - s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "_p", 2))); + { + /* avoid dangling else. */ + s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "_p", 2))); + } outTextS (doP, s); mcPretty_setNeedSpace (doP); s = DynamicStrings_KillString (s); @@ -17782,12 +18924,16 @@ static void tryOutputTodo (nodeProcedure c, nodeProcedure t, nodeProcedure v, no } else if (tryPartial (d, pt)) { + /* avoid dangling else. */ alists_removeItemFromList (todoQ, (void *) d); alists_includeItemIntoList (partialQ, (void *) d); i = 1; } else - i += 1; + { + /* avoid dangling else. */ + i += 1; + } n = alists_noOfItemsInList (todoQ); } } @@ -17816,7 +18962,9 @@ static void tryOutputPartial (nodeProcedure t) n -= 1; } else - i += 1; + { + i += 1; + } } } @@ -17873,7 +19021,9 @@ static void addEnumConst (decl_node n) DynamicStrings_String s; if ((decl_isConst (n)) || (decl_isEnumeration (n))) - addTodo (n); + { + addTodo (n); + } } @@ -17974,11 +19124,19 @@ static void outImpInitC (mcPretty_pretty p, decl_node n) static void runSimplifyTypes (decl_node n) { if (decl_isImp (n)) - simplifyTypes (n->impF.decls); + { + simplifyTypes (n->impF.decls); + } else if (decl_isModule (n)) - simplifyTypes (n->moduleF.decls); + { + /* avoid dangling else. */ + simplifyTypes (n->moduleF.decls); + } else if (decl_isDef (n)) - simplifyTypes (n->defF.decls); + { + /* avoid dangling else. */ + simplifyTypes (n->defF.decls); + } } @@ -18052,7 +19210,9 @@ static void runPrototypeExported (decl_node n) static void runPrototypeDefC (decl_node n) { if (decl_isDef (n)) - Indexing_ForeachIndiceInIndexDo (n->defF.decls.procedures, (Indexing_IndexProcedure) {(Indexing_IndexProcedure_t) runPrototypeExported}); + { + Indexing_ForeachIndiceInIndexDo (n->defF.decls.procedures, (Indexing_IndexProcedure) {(Indexing_IndexProcedure_t) runPrototypeExported}); + } } @@ -18102,7 +19262,9 @@ static void outImpC (mcPretty_pretty p, decl_node n) outDeclsImpC (p, n->impF.decls); defModule = decl_lookupDef (decl_getSymName (n)); if (defModule != NULL) - runPrototypeDefC (defModule); + { + runPrototypeDefC (defModule); + } } Indexing_ForeachIndiceInIndexDo (n->impF.decls.procedures, (Indexing_IndexProcedure) {(Indexing_IndexProcedure_t) doPrototypeC}); outProceduresC (p, n->impF.decls); @@ -18209,13 +19371,24 @@ static void outC (mcPretty_pretty p, decl_node n) { keyc_enterScope (n); if (decl_isDef (n)) - outDefC (p, n); + { + outDefC (p, n); + } else if (decl_isImp (n)) - outImpC (p, n); + { + /* avoid dangling else. */ + outImpC (p, n); + } else if (decl_isModule (n)) - outModuleC (p, n); + { + /* avoid dangling else. */ + outModuleC (p, n); + } else - M2RTS_HALT (-1); + { + /* avoid dangling else. */ + M2RTS_HALT (-1); + } keyc_leaveScope (n); } @@ -18234,11 +19407,19 @@ static void doIncludeM2 (decl_node n) mcPretty_print (doP, (char *) " ;\\n", 4); s = DynamicStrings_KillString (s); if (decl_isDef (n)) - symbolKey_foreachNodeDo (n->defF.decls.symbols, (symbolKey_performOperation) {(symbolKey_performOperation_t) addDone}); + { + symbolKey_foreachNodeDo (n->defF.decls.symbols, (symbolKey_performOperation) {(symbolKey_performOperation_t) addDone}); + } else if (decl_isImp (n)) - symbolKey_foreachNodeDo (n->impF.decls.symbols, (symbolKey_performOperation) {(symbolKey_performOperation_t) addDone}); + { + /* avoid dangling else. */ + symbolKey_foreachNodeDo (n->impF.decls.symbols, (symbolKey_performOperation) {(symbolKey_performOperation_t) addDone}); + } else if (decl_isModule (n)) - symbolKey_foreachNodeDo (n->moduleF.decls.symbols, (symbolKey_performOperation) {(symbolKey_performOperation_t) addDone}); + { + /* avoid dangling else. */ + symbolKey_foreachNodeDo (n->moduleF.decls.symbols, (symbolKey_performOperation) {(symbolKey_performOperation_t) addDone}); + } } @@ -18306,11 +19487,15 @@ static void doVarientFieldM2 (mcPretty_pretty p, decl_node n) } else if (decl_isVarient (q)) { + /* avoid dangling else. */ doVarientM2 (p, q); outText (p, (char *) ";\\n", 3); } else - M2RTS_HALT (-1); + { + /* avoid dangling else. */ + M2RTS_HALT (-1); + } i += 1; } } @@ -18333,11 +19518,19 @@ static void doVarientM2 (mcPretty_pretty p, decl_node n) { /* avoid gcc warning by using compound statement even if not strictly necessary. */ if (decl_isRecordField (n->varientF.tag)) - doRecordFieldM2 (p, n->varientF.tag); + { + doRecordFieldM2 (p, n->varientF.tag); + } else if (decl_isVarientField (n->varientF.tag)) - doVarientFieldM2 (p, n->varientF.tag); + { + /* avoid dangling else. */ + doVarientFieldM2 (p, n->varientF.tag); + } else - M2RTS_HALT (-1); + { + /* avoid dangling else. */ + M2RTS_HALT (-1); + } } mcPretty_setNeedSpace (p); outText (p, (char *) "OF\\n", 4); @@ -18356,9 +19549,15 @@ static void doVarientM2 (mcPretty_pretty p, decl_node n) } } else if (decl_isVarientField (q)) - doVarientFieldM2 (p, q); + { + /* avoid dangling else. */ + doVarientFieldM2 (p, q); + } else - M2RTS_HALT (-1); + { + /* avoid dangling else. */ + M2RTS_HALT (-1); + } i += 1; } outText (p, (char *) "END", 3); @@ -18395,11 +19594,15 @@ static void doRecordM2 (mcPretty_pretty p, decl_node n) } else if (decl_isVarient (f)) { + /* avoid dangling else. */ doVarientM2 (p, f); outText (p, (char *) ";\\n", 3); } else if (decl_isVarientField (f)) - doVarientFieldM2 (p, f); + { + /* avoid dangling else. */ + doVarientFieldM2 (p, f); + } i += 1; } p = outKm2 (p, (char *) "END", 3); @@ -18532,19 +19735,39 @@ static void doSystemM2 (mcPretty_pretty p, decl_node n) static void doTypeM2 (mcPretty_pretty p, decl_node n) { if (isBase (n)) - doBaseM2 (p, n); + { + doBaseM2 (p, n); + } else if (isSystem (n)) - doSystemM2 (p, n); + { + /* avoid dangling else. */ + doSystemM2 (p, n); + } else if (decl_isType (n)) - doTypeAliasM2 (p, n); + { + /* avoid dangling else. */ + doTypeAliasM2 (p, n); + } else if (decl_isProcType (n)) - doProcTypeM2 (p, n); + { + /* avoid dangling else. */ + doProcTypeM2 (p, n); + } else if (decl_isPointer (n)) - doPointerM2 (p, n); + { + /* avoid dangling else. */ + doPointerM2 (p, n); + } else if (decl_isEnumeration (n)) - doEnumerationM2 (p, n); + { + /* avoid dangling else. */ + doEnumerationM2 (p, n); + } else if (decl_isRecord (n)) - doRecordM2 (p, n); + { + /* avoid dangling else. */ + doRecordM2 (p, n); + } } @@ -18615,13 +19838,17 @@ static void doParamM2 (mcPretty_pretty p, decl_node n) mcDebug_assert (decl_isParam (n)); ptype = decl_getType (n); if (n->paramF.namelist == NULL) - doTypeNameM2 (p, ptype); + { + doTypeNameM2 (p, ptype); + } else { mcDebug_assert (isIdentList (n->paramF.namelist)); l = n->paramF.namelist->identlistF.names; if (l == NULL) - doTypeNameM2 (p, ptype); + { + doTypeNameM2 (p, ptype); + } else { t = wlists_noOfItemsInList (l); @@ -18663,13 +19890,17 @@ static void doVarParamM2 (mcPretty_pretty p, decl_node n) mcPretty_setNeedSpace (p); ptype = decl_getType (n); if (n->varparamF.namelist == NULL) - doTypeNameM2 (p, ptype); + { + doTypeNameM2 (p, ptype); + } else { mcDebug_assert (isIdentList (n->varparamF.namelist)); l = n->varparamF.namelist->identlistF.names; if (l == NULL) - doTypeNameM2 (p, ptype); + { + doTypeNameM2 (p, ptype); + } else { t = wlists_noOfItemsInList (l); @@ -18701,11 +19932,19 @@ static void doVarParamM2 (mcPretty_pretty p, decl_node n) static void doParameterM2 (mcPretty_pretty p, decl_node n) { if (decl_isParam (n)) - doParamM2 (p, n); + { + doParamM2 (p, n); + } else if (decl_isVarParam (n)) - doVarParamM2 (p, n); + { + /* avoid dangling else. */ + doVarParamM2 (p, n); + } else if (decl_isVarargs (n)) - mcPretty_print (p, (char *) "...", 3); + { + /* avoid dangling else. */ + mcPretty_print (p, (char *) "...", 3); + } } @@ -18765,11 +20004,19 @@ static void outputPartialM2 (decl_node n) q = decl_getType (n); if (decl_isRecord (q)) - doTypeM2 (doP, n); + { + doTypeM2 (doP, n); + } else if (decl_isArray (q)) - doTypeM2 (doP, n); + { + /* avoid dangling else. */ + doTypeM2 (doP, n); + } else if (decl_isProcType (q)) - doTypeM2 (doP, n); + { + /* avoid dangling else. */ + doTypeM2 (doP, n); + } } @@ -18879,13 +20126,24 @@ static void outModuleM2 (mcPretty_pretty p, decl_node n) static void outM2 (mcPretty_pretty p, decl_node n) { if (decl_isDef (n)) - outDefM2 (p, n); + { + outDefM2 (p, n); + } else if (decl_isImp (n)) - outImpM2 (p, n); + { + /* avoid dangling else. */ + outImpM2 (p, n); + } else if (decl_isModule (n)) - outModuleM2 (p, n); + { + /* avoid dangling else. */ + outModuleM2 (p, n); + } else - M2RTS_HALT (-1); + { + /* avoid dangling else. */ + M2RTS_HALT (-1); + } } @@ -18918,7 +20176,9 @@ static void addDoneDef (decl_node n) mcError_errorAbort0 ((char *) "terminating compilation", 23); } else - addDone (n); + { + addDone (n); + } } @@ -18929,7 +20189,9 @@ static void addDoneDef (decl_node n) static decl_node dbgAdd (alists_alist l, decl_node n) { if (n != NULL) - alists_includeItemIntoList (l, (void *) n); + { + alists_includeItemIntoList (l, (void *) n); + } return n; } @@ -18945,9 +20207,13 @@ static void dbgType (alists_alist l, decl_node n) t = dbgAdd (l, decl_getType (n)); out1 ((char *) "<%s type", 8, n); if (t == NULL) - out0 ((char *) ", type = NIL\\n", 14); + { + out0 ((char *) ", type = NIL\\n", 14); + } else - out1 ((char *) ", type = %s>\\n", 14, t); + { + out1 ((char *) ", type = %s>\\n", 14, t); + } } @@ -18982,13 +20248,24 @@ static void dbgRecord (alists_alist l, decl_node n) { q = Indexing_GetIndice (n->recordF.listOfSons, i); if (decl_isRecordField (q)) - out1 ((char *) " \\n", 7, q); i += 1; @@ -19011,7 +20288,9 @@ static void dbgVarient (alists_alist l, decl_node n) out1 ((char *) "tag %s", 6, n->varientF.tag); q = decl_getType (n->varientF.tag); if (q == NULL) - outText (doP, (char *) "\\n", 2); + { + outText (doP, (char *) "\\n", 2); + } else { out1 ((char *) ": %s\\n", 6, q); @@ -19023,13 +20302,24 @@ static void dbgVarient (alists_alist l, decl_node n) { q = Indexing_GetIndice (n->varientF.listOfSons, i); if (decl_isRecordField (q)) - out1 ((char *) " \\n", 7, q); i += 1; @@ -19082,7 +20372,9 @@ static void dbgVar (alists_alist l, decl_node n) static void dbgSubrange (alists_alist l, decl_node n) { if (n->subrangeF.low == NULL) - out1 ((char *) "%s", 2, n->subrangeF.type); + { + out1 ((char *) "%s", 2, n->subrangeF.type); + } else { out1 ((char *) "[%s", 3, n->subrangeF.low); @@ -19102,7 +20394,9 @@ static void dbgArray (alists_alist l, decl_node n) t = dbgAdd (l, decl_getType (n)); out1 ((char *) "<%s array ", 10, n); if (n->arrayF.subr != NULL) - dbgSubrange (l, n->arrayF.subr); + { + dbgSubrange (l, n->arrayF.subr); + } out1 ((char *) " of %s>\\n", 9, t); } @@ -19116,21 +20410,45 @@ static void doDbg (alists_alist l, decl_node n) if (n == NULL) {} /* empty. */ else if (decl_isSubrange (n)) - dbgSubrange (l, n); + { + /* avoid dangling else. */ + dbgSubrange (l, n); + } else if (decl_isType (n)) - dbgType (l, n); + { + /* avoid dangling else. */ + dbgType (l, n); + } else if (decl_isRecord (n)) - dbgRecord (l, n); + { + /* avoid dangling else. */ + dbgRecord (l, n); + } else if (decl_isVarient (n)) - dbgVarient (l, n); + { + /* avoid dangling else. */ + dbgVarient (l, n); + } else if (decl_isEnumeration (n)) - dbgEnumeration (l, n); + { + /* avoid dangling else. */ + dbgEnumeration (l, n); + } else if (decl_isPointer (n)) - dbgPointer (l, n); + { + /* avoid dangling else. */ + dbgPointer (l, n); + } else if (decl_isArray (n)) - dbgArray (l, n); + { + /* avoid dangling else. */ + dbgArray (l, n); + } else if (decl_isVar (n)) - dbgVar (l, n); + { + /* avoid dangling else. */ + dbgVar (l, n); + } } @@ -19173,6 +20491,17 @@ static void addGenericBody (decl_node n, decl_node c) { switch (n->kind) { + case throw: + case halt: + case new: + case dispose: + case inc: + case dec: + case incl: + case excl: + n->intrinsicF.intrinsicComment.body = c; + break; + case funccall: n->funccallF.funccallComment.body = c; break; @@ -19213,6 +20542,17 @@ static void addGenericAfter (decl_node n, decl_node c) { switch (n->kind) { + case throw: + case halt: + case new: + case dispose: + case inc: + case dec: + case incl: + case excl: + n->intrinsicF.intrinsicComment.after = c; + break; + case funccall: n->funccallF.funccallComment.after = c; break; @@ -19532,7 +20872,6 @@ static decl_node doDupExpr (decl_node n) case float_: case trunc: case ord: - case throw: case not: case neg: case adr: @@ -19999,11 +21338,19 @@ void decl_resetEnumPos (decl_node n) { mcDebug_assert (((decl_isDef (n)) || (decl_isImp (n))) || (decl_isModule (n))); if (decl_isDef (n)) - n->defF.enumFixup.count = 0; + { + n->defF.enumFixup.count = 0; + } else if (decl_isImp (n)) - n->impF.enumFixup.count = 0; + { + /* avoid dangling else. */ + n->impF.enumFixup.count = 0; + } else if (decl_isModule (n)) - n->moduleF.enumFixup.count = 0; + { + /* avoid dangling else. */ + n->moduleF.enumFixup.count = 0; + } } @@ -20018,11 +21365,19 @@ decl_node decl_getNextEnum (void) n = NULL; mcDebug_assert (((decl_isDef (currentModule)) || (decl_isImp (currentModule))) || (decl_isModule (currentModule))); if (decl_isDef (currentModule)) - n = getNextFixup (¤tModule->defF.enumFixup); + { + n = getNextFixup (¤tModule->defF.enumFixup); + } else if (decl_isImp (currentModule)) - n = getNextFixup (¤tModule->impF.enumFixup); + { + /* avoid dangling else. */ + n = getNextFixup (¤tModule->impF.enumFixup); + } else if (decl_isModule (currentModule)) - n = getNextFixup (¤tModule->moduleF.enumFixup); + { + /* avoid dangling else. */ + n = getNextFixup (¤tModule->moduleF.enumFixup); + } mcDebug_assert (n != NULL); mcDebug_assert ((decl_isEnumeration (n)) || (decl_isEnumerationField (n))); return n; @@ -20466,6 +21821,8 @@ decl_node decl_getType (decl_node n) return booleanN; break; + case max: + case min: case re: case im: case abs_: @@ -20551,8 +21908,10 @@ decl_node decl_skipType (decl_node n) while ((n != NULL) && (decl_isType (n))) { if ((decl_getType (n)) == NULL) - /* this will occur if, n, is an opaque type. */ - return n; + { + /* this will occur if, n, is an opaque type. */ + return n; + } n = decl_getType (n); } return n; @@ -20632,17 +21991,19 @@ unsigned int decl_isExported (decl_node n) s = decl_getScope (n); if (s != NULL) - switch (s->kind) - { - case def: - return Indexing_IsIndiceInIndex (s->defF.exported, (void *) n); - break; + { + switch (s->kind) + { + case def: + return Indexing_IsIndiceInIndex (s->defF.exported, (void *) n); + break; - default: - return FALSE; - break; - } + default: + return FALSE; + break; + } + } return FALSE; } @@ -20933,7 +22294,9 @@ unsigned int decl_isConstSet (decl_node n) { mcDebug_assert (n != NULL); if ((decl_isLiteral (n)) || (decl_isConst (n))) - return decl_isSet (decl_skipType (decl_getType (n))); + { + return decl_isSet (decl_skipType (decl_getType (n))); + } return FALSE; } @@ -21321,9 +22684,13 @@ decl_node decl_makeVarDecl (decl_node i, decl_node type) decl_node decl_makeEnum (void) { if ((currentModule != NULL) && (decl_getEnumsComplete (currentModule))) - return decl_getNextEnum (); + { + return decl_getNextEnum (); + } else - return doMakeEnum (); + { + return doMakeEnum (); + } } @@ -21334,9 +22701,13 @@ decl_node decl_makeEnum (void) decl_node decl_makeEnumField (decl_node e, nameKey_Name n) { if ((currentModule != NULL) && (decl_getEnumsComplete (currentModule))) - return decl_getNextEnum (); + { + return decl_getNextEnum (); + } else - return doMakeEnumField (e, n); + { + return doMakeEnumField (e, n); + } } @@ -21458,9 +22829,13 @@ decl_node decl_makeVarient (decl_node r) n->varientF.listOfSons = Indexing_InitIndex (1); /* if so use this n^.varientF.parent := r */ if (decl_isRecord (r)) - n->varientF.varient = NULL; + { + n->varientF.varient = NULL; + } else - n->varientF.varient = r; + { + n->varientF.varient = r; + } n->varientF.tag = NULL; n->varientF.scope = decl_getDeclScope (); switch (r->kind) @@ -21514,9 +22889,13 @@ decl_node decl_addFieldsToRecord (decl_node r, decl_node v, decl_node i, decl_no fn = wlists_getItemFromList (i->identlistF.names, j); fj = symbolKey_getSymKey (p->recordF.localSymbols, (nameKey_Name) n); if (fj == NULL) - fj = putFieldRecord (r, fn, t, v); + { + fj = putFieldRecord (r, fn, t, v); + } else - mcMetaError_metaErrors2 ((char *) "record field {%1ad} has already been declared inside a {%2Dd} {%2a}", 67, (char *) "attempting to declare a duplicate record field", 46, (unsigned char *) &fj, (sizeof (fj)-1), (unsigned char *) &p, (sizeof (p)-1)); + { + mcMetaError_metaErrors2 ((char *) "record field {%1ad} has already been declared inside a {%2Dd} {%2a}", 67, (char *) "attempting to declare a duplicate record field", 46, (unsigned char *) &fj, (sizeof (fj)-1), (unsigned char *) &p, (sizeof (p)-1)); + } j += 1; } return r; @@ -21538,14 +22917,18 @@ void decl_buildVarientSelector (decl_node r, decl_node v, nameKey_Name tag, decl { /* avoid gcc warning by using compound statement even if not strictly necessary. */ if ((type == NULL) && (tag == nameKey_NulName)) - mcMetaError_metaError1 ((char *) "expecting a tag field in the declaration of a varient record {%1Ua}", 67, (unsigned char *) &r, (sizeof (r)-1)); + { + mcMetaError_metaError1 ((char *) "expecting a tag field in the declaration of a varient record {%1Ua}", 67, (unsigned char *) &r, (sizeof (r)-1)); + } else if (type == NULL) { + /* avoid dangling else. */ f = decl_lookupSym (tag); putVarientTag (v, f); } else { + /* avoid dangling else. */ f = putFieldRecord (r, tag, type, v); mcDebug_assert (decl_isRecordField (f)); f->recordfieldF.tag = TRUE; @@ -21981,7 +23364,9 @@ decl_node decl_lookupExported (decl_node n, nameKey_Name i) mcDebug_assert (decl_isDef (n)); r = symbolKey_getSymKey (n->defF.decls.symbols, i); if ((r != NULL) && (decl_isExported (r))) - return r; + { + return r; + } return NULL; } @@ -22004,11 +23389,15 @@ decl_node decl_lookupSym (nameKey_Name n) s = Indexing_GetIndice (scopeStack, h); m = decl_lookupInScope (s, n); if (debugScopes && (m == NULL)) - out3 ((char *) " [%d] search for symbol name %s in scope %s\\n", 45, h, n, s); + { + out3 ((char *) " [%d] search for symbol name %s in scope %s\\n", 45, h, n, s); + } if (m != NULL) { if (debugScopes) - out3 ((char *) " [%d] search for symbol name %s in scope %s (found)\\n", 53, h, n, s); + { + out3 ((char *) " [%d] search for symbol name %s in scope %s (found)\\n", 53, h, n, s); + } return m; } h -= 1; @@ -22027,15 +23416,28 @@ void decl_addImportedModule (decl_node m, decl_node i, unsigned int scoped) { mcDebug_assert ((decl_isDef (i)) || (decl_isModule (i))); if (decl_isDef (m)) - Indexing_IncludeIndiceIntoIndex (m->defF.importedModules, (void *) i); + { + Indexing_IncludeIndiceIntoIndex (m->defF.importedModules, (void *) i); + } else if (decl_isImp (m)) - Indexing_IncludeIndiceIntoIndex (m->impF.importedModules, (void *) i); + { + /* avoid dangling else. */ + Indexing_IncludeIndiceIntoIndex (m->impF.importedModules, (void *) i); + } else if (decl_isModule (m)) - Indexing_IncludeIndiceIntoIndex (m->moduleF.importedModules, (void *) i); + { + /* avoid dangling else. */ + Indexing_IncludeIndiceIntoIndex (m->moduleF.importedModules, (void *) i); + } else - M2RTS_HALT (-1); + { + /* avoid dangling else. */ + M2RTS_HALT (-1); + } if (scoped) - addModuleToScope (m, i); + { + addModuleToScope (m, i); + } } @@ -22142,9 +23544,13 @@ void decl_foreachModModuleDo (symbolKey_performOperation p) void decl_enterScope (decl_node n) { if (Indexing_IsIndiceInIndex (scopeStack, (void *) n)) - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } else - Indexing_IncludeIndiceIntoIndex (scopeStack, (void *) n); + { + Indexing_IncludeIndiceIntoIndex (scopeStack, (void *) n); + } if (debugScopes) { libc_printf ((char *) "enter scope\\n", 13); @@ -22215,7 +23621,9 @@ void decl_putCommentDefProcedure (decl_node n) { mcDebug_assert (decl_isProcedure (n)); if (mcComment_isProcedureComment (mcLexBuf_lastcomment)) - n->procedureF.defComment = mcLexBuf_lastcomment; + { + n->procedureF.defComment = mcLexBuf_lastcomment; + } } @@ -22229,7 +23637,9 @@ void decl_putCommentModProcedure (decl_node n) { mcDebug_assert (decl_isProcedure (n)); if (mcComment_isProcedureComment (mcLexBuf_lastcomment)) - n->procedureF.modComment = mcLexBuf_lastcomment; + { + n->procedureF.modComment = mcLexBuf_lastcomment; + } } @@ -22260,9 +23670,13 @@ void decl_putReturnType (decl_node proc, decl_node type) { mcDebug_assert ((decl_isProcedure (proc)) || (decl_isProcType (proc))); if (decl_isProcedure (proc)) - proc->procedureF.returnType = type; + { + proc->procedureF.returnType = type; + } else - proc->proctypeF.returnType = type; + { + proc->proctypeF.returnType = type; + } } @@ -22274,9 +23688,13 @@ void decl_putOptReturn (decl_node proc) { mcDebug_assert ((decl_isProcedure (proc)) || (decl_isProcType (proc))); if (decl_isProcedure (proc)) - proc->procedureF.returnopt = TRUE; + { + proc->procedureF.returnopt = TRUE; + } else - proc->proctypeF.returnopt = TRUE; + { + proc->proctypeF.returnopt = TRUE; + } } @@ -22336,7 +23754,9 @@ void decl_paramLeave (decl_node n) mcDebug_assert (decl_isProcedure (n)); n->procedureF.checking = TRUE; if ((decl_isImp (currentModule)) || (decl_isModule (currentModule))) - n->procedureF.built = TRUE; + { + n->procedureF.built = TRUE; + } } @@ -22364,7 +23784,9 @@ unsigned int decl_putIdent (decl_node n, nameKey_Name i) { mcDebug_assert (isIdentList (n)); if (wlists_isItemInList (n->identlistF.names, (unsigned int) i)) - return FALSE; + { + return FALSE; + } else { wlists_putItemIntoList (n->identlistF.names, (unsigned int) i); @@ -22386,7 +23808,9 @@ void decl_addVarParameters (decl_node n, decl_node i, decl_node type) mcDebug_assert (decl_isProcedure (n)); checkMakeVariables (n, i, type, TRUE); if (n->procedureF.checking) - checkParameters (n, i, type, TRUE); /* will destroy, i. */ + { + checkParameters (n, i, type, TRUE); /* will destroy, i. */ + } else { p = decl_makeVarParameter (i, type, n); @@ -22408,7 +23832,9 @@ void decl_addNonVarParameters (decl_node n, decl_node i, decl_node type) mcDebug_assert (decl_isProcedure (n)); checkMakeVariables (n, i, type, FALSE); if (n->procedureF.checking) - checkParameters (n, i, type, FALSE); /* will destroy, i. */ + { + checkParameters (n, i, type, FALSE); /* will destroy, i. */ + } else { p = decl_makeNonVarParameter (i, type, n); @@ -22453,17 +23879,25 @@ void decl_addParameter (decl_node proc, decl_node param) case procedure: Indexing_IncludeIndiceIntoIndex (proc->procedureF.parameters, (void *) param); if (decl_isVarargs (param)) - proc->procedureF.vararg = TRUE; + { + proc->procedureF.vararg = TRUE; + } if (decl_isOptarg (param)) - proc->procedureF.optarg_ = param; + { + proc->procedureF.optarg_ = param; + } break; case proctype: Indexing_IncludeIndiceIntoIndex (proc->proctypeF.parameters, (void *) param); if (decl_isVarargs (param)) - proc->proctypeF.vararg = TRUE; + { + proc->proctypeF.vararg = TRUE; + } if (decl_isOptarg (param)) - proc->proctypeF.optarg_ = param; + { + proc->proctypeF.optarg_ = param; + } break; @@ -22481,37 +23915,84 @@ void decl_addParameter (decl_node proc, decl_node param) decl_node decl_makeBinaryTok (mcReserved_toktype op, decl_node l, decl_node r) { if (op == mcReserved_equaltok) - return makeBinary ((nodeT) equal, l, r, booleanN); + { + return makeBinary ((nodeT) equal, l, r, booleanN); + } else if ((op == mcReserved_hashtok) || (op == mcReserved_lessgreatertok)) - return makeBinary ((nodeT) notequal, l, r, booleanN); + { + /* avoid dangling else. */ + return makeBinary ((nodeT) notequal, l, r, booleanN); + } else if (op == mcReserved_lesstok) - return makeBinary ((nodeT) less, l, r, booleanN); + { + /* avoid dangling else. */ + return makeBinary ((nodeT) less, l, r, booleanN); + } else if (op == mcReserved_greatertok) - return makeBinary ((nodeT) greater, l, r, booleanN); + { + /* avoid dangling else. */ + return makeBinary ((nodeT) greater, l, r, booleanN); + } else if (op == mcReserved_greaterequaltok) - return makeBinary ((nodeT) greequal, l, r, booleanN); + { + /* avoid dangling else. */ + return makeBinary ((nodeT) greequal, l, r, booleanN); + } else if (op == mcReserved_lessequaltok) - return makeBinary ((nodeT) lessequal, l, r, booleanN); + { + /* avoid dangling else. */ + return makeBinary ((nodeT) lessequal, l, r, booleanN); + } else if (op == mcReserved_andtok) - return makeBinary ((nodeT) and, l, r, booleanN); + { + /* avoid dangling else. */ + return makeBinary ((nodeT) and, l, r, booleanN); + } else if (op == mcReserved_ortok) - return makeBinary ((nodeT) or, l, r, booleanN); + { + /* avoid dangling else. */ + return makeBinary ((nodeT) or, l, r, booleanN); + } else if (op == mcReserved_plustok) - return makeBinary ((nodeT) plus, l, r, (decl_node) NULL); + { + /* avoid dangling else. */ + return makeBinary ((nodeT) plus, l, r, (decl_node) NULL); + } else if (op == mcReserved_minustok) - return makeBinary ((nodeT) sub, l, r, (decl_node) NULL); + { + /* avoid dangling else. */ + return makeBinary ((nodeT) sub, l, r, (decl_node) NULL); + } else if (op == mcReserved_divtok) - return makeBinary ((nodeT) div_, l, r, (decl_node) NULL); + { + /* avoid dangling else. */ + return makeBinary ((nodeT) div_, l, r, (decl_node) NULL); + } else if (op == mcReserved_timestok) - return makeBinary ((nodeT) mult, l, r, (decl_node) NULL); + { + /* avoid dangling else. */ + return makeBinary ((nodeT) mult, l, r, (decl_node) NULL); + } else if (op == mcReserved_modtok) - return makeBinary ((nodeT) mod, l, r, (decl_node) NULL); + { + /* avoid dangling else. */ + return makeBinary ((nodeT) mod, l, r, (decl_node) NULL); + } else if (op == mcReserved_intok) - return makeBinary ((nodeT) in, l, r, (decl_node) NULL); + { + /* avoid dangling else. */ + return makeBinary ((nodeT) in, l, r, (decl_node) NULL); + } else if (op == mcReserved_dividetok) - return makeBinary ((nodeT) divide, l, r, (decl_node) NULL); + { + /* avoid dangling else. */ + return makeBinary ((nodeT) divide, l, r, (decl_node) NULL); + } else - M2RTS_HALT (-1); /* most likely op needs a clause as above. */ + { + /* avoid dangling else. */ + M2RTS_HALT (-1); /* most likely op needs a clause as above. */ + } } @@ -22523,13 +24004,24 @@ decl_node decl_makeBinaryTok (mcReserved_toktype op, decl_node l, decl_node r) decl_node decl_makeUnaryTok (mcReserved_toktype op, decl_node e) { if (op == mcReserved_nottok) - return makeUnary ((nodeT) not, e, booleanN); + { + return makeUnary ((nodeT) not, e, booleanN); + } else if (op == mcReserved_plustok) - return makeUnary ((nodeT) plus, e, (decl_node) NULL); + { + /* avoid dangling else. */ + return makeUnary ((nodeT) plus, e, (decl_node) NULL); + } else if (op == mcReserved_minustok) - return makeUnary ((nodeT) neg, e, (decl_node) NULL); + { + /* avoid dangling else. */ + return makeUnary ((nodeT) neg, e, (decl_node) NULL); + } else - M2RTS_HALT (-1); /* most likely op needs a clause as above. */ + { + /* avoid dangling else. */ + M2RTS_HALT (-1); /* most likely op needs a clause as above. */ + } } @@ -22568,7 +24060,9 @@ decl_node decl_makeComponentRef (decl_node rec, decl_node field) return rec; } else - return doMakeComponentRef (rec, field); + { + return doMakeComponentRef (rec, field); + } } @@ -22636,9 +24130,13 @@ decl_node decl_makeArrayRef (decl_node array, decl_node index) t = decl_skipType (decl_getType (t)); do { if (decl_isArray (t)) - t = decl_skipType (decl_getType (t)); + { + t = decl_skipType (decl_getType (t)); + } else - mcMetaError_metaError2 ((char *) "cannot access {%1N} dimension of array {%2a}", 44, (unsigned char *) &i, (sizeof (i)-1), (unsigned char *) &t, (sizeof (t)-1)); + { + mcMetaError_metaError2 ((char *) "cannot access {%1N} dimension of array {%2a}", 44, (unsigned char *) &i, (sizeof (i)-1), (unsigned char *) &t, (sizeof (t)-1)); + } i += 1; } while (! (i > j)); n->arrayrefF.resultType = t; @@ -22679,9 +24177,13 @@ decl_node decl_makeLiteralInt (nameKey_Name n) s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (n)); m->literalF.name = n; if ((DynamicStrings_char (s, -1)) == 'C') - m->literalF.type = charN; + { + m->literalF.type = charN; + } else - m->literalF.type = ztypeN; + { + m->literalF.type = ztypeN; + } s = DynamicStrings_KillString (s); return m; } @@ -22717,9 +24219,13 @@ decl_node decl_makeString (nameKey_Name n) m->stringF.cstring = toCstring (n); m->stringF.clength = lenCstring (m->stringF.cstring); if (m->stringF.isCharCompatible) - m->stringF.cchar = toCchar (n); + { + m->stringF.cchar = toCchar (n); + } else - m->stringF.cchar = NULL; + { + m->stringF.cchar = NULL; + } return m; } @@ -22785,15 +24291,29 @@ decl_node decl_includeSetValue (decl_node n, decl_node l, decl_node h) decl_node decl_getBuiltinConst (nameKey_Name n) { if (n == (nameKey_makeKey ((char *) "BITS_PER_UNIT", 13))) - return bitsperunitN; + { + return bitsperunitN; + } else if (n == (nameKey_makeKey ((char *) "BITS_PER_WORD", 13))) - return bitsperwordN; + { + /* avoid dangling else. */ + return bitsperwordN; + } else if (n == (nameKey_makeKey ((char *) "BITS_PER_CHAR", 13))) - return bitspercharN; + { + /* avoid dangling else. */ + return bitspercharN; + } else if (n == (nameKey_makeKey ((char *) "UNITS_PER_WORD", 14))) - return unitsperwordN; + { + /* avoid dangling else. */ + return unitsperwordN; + } else - return NULL; + { + /* avoid dangling else. */ + return NULL; + } } @@ -22841,9 +24361,13 @@ void decl_putExpList (decl_node n, decl_node e) decl_node decl_makeConstExp (void) { if ((currentModule != NULL) && (getConstExpComplete (currentModule))) - return decl_getNextConstExp (); + { + return decl_getNextConstExp (); + } else - return doMakeConstExp (); + { + return doMakeConstExp (); + } } @@ -22857,11 +24381,19 @@ decl_node decl_getNextConstExp (void) mcDebug_assert (((decl_isDef (currentModule)) || (decl_isImp (currentModule))) || (decl_isModule (currentModule))); if (decl_isDef (currentModule)) - return getNextFixup (¤tModule->defF.constFixup); + { + return getNextFixup (¤tModule->defF.constFixup); + } else if (decl_isImp (currentModule)) - return getNextFixup (¤tModule->impF.constFixup); + { + /* avoid dangling else. */ + return getNextFixup (¤tModule->impF.constFixup); + } else if (decl_isModule (currentModule)) - return getNextFixup (¤tModule->moduleF.constFixup); + { + /* avoid dangling else. */ + return getNextFixup (¤tModule->moduleF.constFixup); + } return n; } @@ -22914,11 +24446,19 @@ void decl_resetConstExpPos (decl_node n) { mcDebug_assert (((decl_isDef (n)) || (decl_isImp (n))) || (decl_isModule (n))); if (decl_isDef (n)) - n->defF.constFixup.count = 0; + { + n->defF.constFixup.count = 0; + } else if (decl_isImp (n)) - n->impF.constFixup.count = 0; + { + /* avoid dangling else. */ + n->impF.constFixup.count = 0; + } else if (decl_isModule (n)) - n->moduleF.constFixup.count = 0; + { + /* avoid dangling else. */ + n->moduleF.constFixup.count = 0; + } } @@ -22932,18 +24472,19 @@ decl_node decl_makeFuncCall (decl_node c, decl_node n) mcDebug_assert ((n == NULL) || (decl_isExpList (n))); if (((c == haltN) && ((decl_getMainModule ()) != (decl_lookupDef (nameKey_makeKey ((char *) "M2RTS", 5))))) && ((decl_getMainModule ()) != (decl_lookupImp (nameKey_makeKey ((char *) "M2RTS", 5))))) - decl_addImportedModule (decl_getMainModule (), decl_lookupDef (nameKey_makeKey ((char *) "M2RTS", 5)), FALSE); - if (isAnyType (c)) - return makeCast (c, n); - else + { + decl_addImportedModule (decl_getMainModule (), decl_lookupDef (nameKey_makeKey ((char *) "M2RTS", 5)), FALSE); + } + f = checkIntrinsic (c, n); + if (f == NULL) { f = newNode ((nodeT) funccall); f->funccallF.function = c; f->funccallF.args = n; f->funccallF.type = NULL; initPair (&f->funccallF.funccallComment); - return f; } + return f; } @@ -22997,7 +24538,9 @@ void decl_addCommentBody (decl_node n) { b = mcLexBuf_getBodyComment (); if (b != NULL) - addGenericBody (n, decl_makeCommentS (b)); + { + addGenericBody (n, decl_makeCommentS (b)); + } } } @@ -23014,7 +24557,9 @@ void decl_addCommentAfter (decl_node n) { a = mcLexBuf_getAfterComment (); if (a != NULL) - addGenericAfter (n, decl_makeCommentS (a)); + { + addGenericAfter (n, decl_makeCommentS (a)); + } } } @@ -23331,7 +24876,9 @@ decl_node decl_makeCommentS (mcComment_commentDesc c) decl_node n; if (c == NULL) - return NULL; + { + return NULL; + } else { n = newNode ((nodeT) comment); @@ -23716,9 +25263,13 @@ unsigned int decl_isRange (decl_node n) decl_node decl_dupExpr (decl_node n) { if (n == NULL) - return NULL; + { + return NULL; + } else - return doDupExpr (n); + { + return doDupExpr (n); + } } --- a/src/gcc/gm2/mc-boot/Gkeyc.c +++ b/src/gcc/gm2/mc-boot/Gkeyc.c @@ -485,7 +485,9 @@ static void init (void); static void checkCtype (mcPretty_pretty p) { if (seenCtype) - mcPretty_print (p, (char *) "#include \\n", 20); + { + mcPretty_print (p, (char *) "#include \\n", 20); + } } @@ -496,7 +498,9 @@ static void checkCtype (mcPretty_pretty p) static void checkAbs (mcPretty_pretty p) { if (((((seenLabs || seenAbs) || seenFabs) || seenFabsl) || seenSize_t) || seenSSize_t) - mcPretty_print (p, (char *) "#include \\n", 21); + { + mcPretty_print (p, (char *) "#include \\n", 21); + } } @@ -507,7 +511,9 @@ static void checkAbs (mcPretty_pretty p) static void checkLimits (mcPretty_pretty p) { if ((((((((((((((seenMemcpy || seenIntMin) || seenUIntMin) || seenLongMin) || seenULongMin) || seenCharMin) || seenUCharMin) || seenUIntMin) || seenIntMax) || seenUIntMax) || seenLongMax) || seenULongMax) || seenCharMax) || seenUCharMax) || seenUIntMax) - mcPretty_print (p, (char *) "#include \\n", 21); + { + mcPretty_print (p, (char *) "#include \\n", 21); + } } @@ -518,7 +524,9 @@ static void checkLimits (mcPretty_pretty p) static void checkFreeMalloc (mcPretty_pretty p) { if (seenFree || seenMalloc) - mcPretty_print (p, (char *) "#include \\n", 21); + { + mcPretty_print (p, (char *) "#include \\n", 21); + } } @@ -591,7 +599,9 @@ static void checkFalse (mcPretty_pretty p) static void checkNull (mcPretty_pretty p) { if (seenNull) - mcPretty_print (p, (char *) "#include \\n", 21); + { + mcPretty_print (p, (char *) "#include \\n", 21); + } } @@ -602,7 +612,9 @@ static void checkNull (mcPretty_pretty p) static void checkMemcpy (mcPretty_pretty p) { if (seenMemcpy || seenStrlen) - mcPretty_print (p, (char *) "#include \\n", 21); + { + mcPretty_print (p, (char *) "#include \\n", 21); + } } @@ -628,7 +640,9 @@ static void checkM2RTS (mcPretty_pretty p) static void checkException (mcPretty_pretty p) { if (seenException) - mcPretty_print (p, (char *) "# include \"Gmcrts.h\"\\n", 24); + { + mcPretty_print (p, (char *) "# include \"Gmcrts.h\"\\n", 24); + } } @@ -639,7 +653,9 @@ static void checkException (mcPretty_pretty p) static void checkComplex (mcPretty_pretty p) { if (seenComplex) - mcPretty_print (p, (char *) "# include \\n", 25); + { + mcPretty_print (p, (char *) "# include \\n", 25); + } } @@ -652,7 +668,9 @@ static scope new (decl_node n) scope s; if (freeList == NULL) - Storage_ALLOCATE ((void **) &s, sizeof (_T1)); + { + Storage_ALLOCATE ((void **) &s, sizeof (_T1)); + } else { s = freeList; @@ -703,7 +721,9 @@ static unsigned int mangleN (nameKey_Name n, DynamicStrings_String *m, unsigned { (*m) = DynamicStrings_ConCatChar ((*m), '_'); if (! (clash (nameKey_makekey (DynamicStrings_string ((*m))), scopes))) - return TRUE; + { + return TRUE; + } } ReturnException ("../../gcc-versionno/gcc/gm2/mc/keyc.def", 20, 1); } @@ -717,7 +737,9 @@ static unsigned int mangleN (nameKey_Name n, DynamicStrings_String *m, unsigned static unsigned int clash (nameKey_Name n, unsigned int scopes) { if (((symbolKey_getSymKey (macros, n)) != NULL) || ((symbolKey_getSymKey (keywords, n)) != NULL)) - return TRUE; + { + return TRUE; + } return scopes && ((symbolKey_getSymKey (stack->symbols, n)) != NULL); } @@ -1240,7 +1262,9 @@ void keyc_leaveScope (decl_node n) s->next = NULL; } else - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } } @@ -1260,22 +1284,29 @@ DynamicStrings_String keyc_cname (nameKey_Name n, unsigned int scopes) m = NULL; if (clash (n, scopes)) - if (((mangle1 (n, &m, scopes)) || (mangle2 (n, &m, scopes))) || (mangleN (n, &m, scopes))) - { - /* avoid dangling else. */ - if (scopes) - { - /* no longer a clash with, m, so add it to the current scope. */ - n = nameKey_makekey (DynamicStrings_string (m)); - symbolKey_putSymKey (stack->symbols, n, (void *) m); - } - } - else - /* mangleN must always succeed. */ - M2RTS_HALT (-1); + { + if (((mangle1 (n, &m, scopes)) || (mangle2 (n, &m, scopes))) || (mangleN (n, &m, scopes))) + { + /* avoid dangling else. */ + if (scopes) + { + /* no longer a clash with, m, so add it to the current scope. */ + n = nameKey_makekey (DynamicStrings_string (m)); + symbolKey_putSymKey (stack->symbols, n, (void *) m); + } + } + else + { + /* mangleN must always succeed. */ + M2RTS_HALT (-1); + } + } else if (scopes) - /* no clash, add it to the current scope. */ - symbolKey_putSymKey (stack->symbols, n, (void *) DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (n))); + { + /* avoid dangling else. */ + /* no clash, add it to the current scope. */ + symbolKey_putSymKey (stack->symbols, n, (void *) DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (n))); + } return m; } @@ -1296,20 +1327,29 @@ nameKey_Name keyc_cnamen (nameKey_Name n, unsigned int scopes) m = NULL; if (clash (n, scopes)) - if (((mangle1 (n, &m, scopes)) || (mangle2 (n, &m, scopes))) || (mangleN (n, &m, scopes))) - { - /* avoid dangling else. */ - n = nameKey_makekey (DynamicStrings_string (m)); - if (scopes) - /* no longer a clash with, m, so add it to the current scope. */ - symbolKey_putSymKey (stack->symbols, n, (void *) m); - } - else - /* mangleN must always succeed. */ - M2RTS_HALT (-1); + { + if (((mangle1 (n, &m, scopes)) || (mangle2 (n, &m, scopes))) || (mangleN (n, &m, scopes))) + { + /* avoid dangling else. */ + n = nameKey_makekey (DynamicStrings_string (m)); + if (scopes) + { + /* no longer a clash with, m, so add it to the current scope. */ + symbolKey_putSymKey (stack->symbols, n, (void *) m); + } + } + else + { + /* mangleN must always succeed. */ + M2RTS_HALT (-1); + } + } else if (scopes) - /* no clash, add it to the current scope. */ - symbolKey_putSymKey (stack->symbols, n, (void *) DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (n))); + { + /* avoid dangling else. */ + /* no clash, add it to the current scope. */ + symbolKey_putSymKey (stack->symbols, n, (void *) DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (n))); + } m = DynamicStrings_KillString (m); return n; } --- a/src/gcc/gm2/mc-boot/Glists.c +++ b/src/gcc/gm2/mc-boot/Glists.c @@ -180,7 +180,9 @@ void lists_killList (lists_list *l) if ((*l) != NULL) { if ((*l)->next != NULL) - lists_killList (&(*l)->next); + { + lists_killList (&(*l)->next); + } Storage_DEALLOCATE ((void **) &(*l), sizeof (_T1)); } } @@ -198,9 +200,13 @@ void lists_putItemIntoList (lists_list l, void * c) l->elements.array[l->noOfelements-1] = c; } else if (l->next != NULL) - lists_putItemIntoList (l->next, c); + { + /* avoid dangling else. */ + lists_putItemIntoList (l->next, c); + } else { + /* avoid dangling else. */ l->next = lists_initList (); lists_putItemIntoList (l->next, c); } @@ -216,9 +222,13 @@ void * lists_getItemFromList (lists_list l, unsigned int n) while (l != NULL) { if (n <= l->noOfelements) - return l->elements.array[n-1]; + { + return l->elements.array[n-1]; + } else - n -= l->noOfelements; + { + n -= l->noOfelements; + } l = l->next; } return 0; @@ -236,15 +246,23 @@ unsigned int lists_getIndexOfList (lists_list l, void * c) unsigned int i; if (l == NULL) - return 0; + { + return 0; + } else { i = 1; while (i <= l->noOfelements) - if (l->elements.array[i-1] == c) - return i; - else - i += 1; + { + if (l->elements.array[i-1] == c) + { + return i; + } + else + { + i += 1; + } + } return l->noOfelements+(lists_getIndexOfList (l->next, c)); } } @@ -259,7 +277,9 @@ unsigned int lists_noOfItemsInList (lists_list l) unsigned int t; if (l == NULL) - return 0; + { + return 0; + } else { t = 0; @@ -280,7 +300,9 @@ unsigned int lists_noOfItemsInList (lists_list l) void lists_includeItemIntoList (lists_list l, void * c) { if (! (lists_isItemInList (l, c))) - lists_putItemIntoList (l, c); + { + lists_putItemIntoList (l, c); + } } @@ -302,9 +324,13 @@ void lists_removeItemFromList (lists_list l, void * c) do { i = 1; while ((i <= l->noOfelements) && (l->elements.array[i-1] != c)) - i += 1; + { + i += 1; + } if ((i <= l->noOfelements) && (l->elements.array[i-1] == c)) - found = TRUE; + { + found = TRUE; + } else { p = l; @@ -312,7 +338,9 @@ void lists_removeItemFromList (lists_list l, void * c) } } while (! ((l == NULL) || found)); if (found) - removeItem (p, l, i); + { + removeItem (p, l, i); + } } } @@ -328,10 +356,16 @@ unsigned int lists_isItemInList (lists_list l, void * c) do { i = 1; while (i <= l->noOfelements) - if (l->elements.array[i-1] == c) - return TRUE; - else - i += 1; + { + if (l->elements.array[i-1] == c) + { + return TRUE; + } + else + { + i += 1; + } + } l = l->next; } while (! (l == NULL)); return FALSE; --- a/src/gcc/gm2/mc-boot/GmcComment.c +++ b/src/gcc/gm2/mc-boot/GmcComment.c @@ -165,9 +165,13 @@ static void dumpComment (mcComment_commentDesc cd); static unsigned int Min (unsigned int a, unsigned int b) { if (a < b) - return a; + { + return a; + } else - return b; + { + return b; + } } @@ -178,10 +182,16 @@ static unsigned int Min (unsigned int a, unsigned int b) static DynamicStrings_String RemoveNewlines (DynamicStrings_String s) { while ((DynamicStrings_Length (s)) > 0) - if ((DynamicStrings_char (s, 0)) == ASCII_nl) - s = DynamicStrings_RemoveWhitePrefix (DynamicStrings_Slice (s, 1, 0)); - else - return DynamicStrings_RemoveWhitePrefix (s); + { + if ((DynamicStrings_char (s, 0)) == ASCII_nl) + { + s = DynamicStrings_RemoveWhitePrefix (DynamicStrings_Slice (s, 1, 0)); + } + else + { + return DynamicStrings_RemoveWhitePrefix (s); + } + } return s; } @@ -238,9 +248,13 @@ static void dumpComment (mcComment_commentDesc cd) CaseException ("../../gcc-versionno/gcc/gm2/mc/mcComment.def", 20, 1); } if (cd->used) - libc_printf ((char *) " used", 5); + { + libc_printf ((char *) " used", 5); + } else - libc_printf ((char *) " unused", 7); + { + libc_printf ((char *) " unused", 7); + } libc_printf ((char *) " contents = %s\\n", 16, DynamicStrings_string (cd->content)); } @@ -259,9 +273,13 @@ mcComment_commentDesc mcComment_initComment (unsigned int onlySpaces) Storage_ALLOCATE ((void **) &cd, sizeof (_T1)); mcDebug_assert (cd != NULL); if (onlySpaces) - cd->type = inBody; + { + cd->type = inBody; + } else - cd->type = afterStatement; + { + cd->type = afterStatement; + } cd->content = DynamicStrings_InitString ((char *) "", 0); cd->procName = nameKey_NulName; cd->used = FALSE; @@ -277,7 +295,9 @@ mcComment_commentDesc mcComment_initComment (unsigned int onlySpaces) void mcComment_addText (mcComment_commentDesc cd, void * cs) { if (cd != NULL) - cd->content = DynamicStrings_ConCat (cd->content, DynamicStrings_InitStringCharStar (cs)); + { + cd->content = DynamicStrings_ConCat (cd->content, DynamicStrings_InitStringCharStar (cs)); + } } @@ -288,7 +308,9 @@ void mcComment_addText (mcComment_commentDesc cd, void * cs) DynamicStrings_String mcComment_getContent (mcComment_commentDesc cd) { if (cd != NULL) - return cd->content; + { + return cd->content; + } return NULL; } @@ -303,9 +325,13 @@ void * mcComment_getCommentCharStar (mcComment_commentDesc cd) s = mcComment_getContent (cd); if (s == NULL) - return NULL; + { + return NULL; + } else - return DynamicStrings_string (s); + { + return DynamicStrings_string (s); + } } @@ -318,11 +344,13 @@ void * mcComment_getCommentCharStar (mcComment_commentDesc cd) void mcComment_setProcedureComment (mcComment_commentDesc cd, nameKey_Name procname) { if (cd != NULL) - if (seenProcedure (cd, procname)) - { - cd->type = procedureHeading; - cd->procName = procname; - } + { + if (seenProcedure (cd, procname)) + { + cd->type = procedureHeading; + cd->procName = procname; + } + } } --- a/src/gcc/gm2/mc-boot/GmcComp.c +++ b/src/gcc/gm2/mc-boot/GmcComp.c @@ -239,7 +239,9 @@ static decl_node examineCompilationUnit (void) { mcLexBuf_getToken (); if (mcLexBuf_currenttoken == mcReserved_stringtok) - mcLexBuf_getToken (); + { + mcLexBuf_getToken (); + } else { mcflex_mcError (DynamicStrings_string (DynamicStrings_InitString ((char *) "expecting language string after FOR keyword", 43))); @@ -247,29 +249,41 @@ static decl_node examineCompilationUnit (void) } } if (mcLexBuf_currenttoken == mcReserved_identtok) - return decl_lookupDef (nameKey_makekey (mcLexBuf_currentstring)); + { + return decl_lookupDef (nameKey_makekey (mcLexBuf_currentstring)); + } } else - mcflex_mcError (DynamicStrings_string (DynamicStrings_InitString ((char *) "MODULE missing after DEFINITION keyword", 39))); + { + mcflex_mcError (DynamicStrings_string (DynamicStrings_InitString ((char *) "MODULE missing after DEFINITION keyword", 39))); + } } else if (mcLexBuf_currenttoken == mcReserved_implementationtok) { + /* avoid dangling else. */ mcLexBuf_getToken (); if (mcLexBuf_currenttoken == mcReserved_moduletok) { /* avoid dangling else. */ mcLexBuf_getToken (); if (mcLexBuf_currenttoken == mcReserved_identtok) - return decl_lookupImp (nameKey_makekey (mcLexBuf_currentstring)); + { + return decl_lookupImp (nameKey_makekey (mcLexBuf_currentstring)); + } } else - mcflex_mcError (DynamicStrings_string (DynamicStrings_InitString ((char *) "MODULE missing after IMPLEMENTATION keyword", 43))); + { + mcflex_mcError (DynamicStrings_string (DynamicStrings_InitString ((char *) "MODULE missing after IMPLEMENTATION keyword", 43))); + } } else if (mcLexBuf_currenttoken == mcReserved_moduletok) { + /* avoid dangling else. */ mcLexBuf_getToken (); if (mcLexBuf_currenttoken == mcReserved_identtok) - return decl_lookupModule (nameKey_makekey (mcLexBuf_currentstring)); + { + return decl_lookupModule (nameKey_makekey (mcLexBuf_currentstring)); + } } mcLexBuf_getToken (); } @@ -330,10 +344,14 @@ static void p1 (decl_node n) /* avoid dangling else. */ pass (1, n, (parserFunction) {(parserFunction_t) mcp1_CompilationUnit}, (decl_isNodeF) {(decl_isNodeF_t) decl_isDef}, (openFunction) {(openFunction_t) openDef}); if ((decl_hasHidden (n)) && (mcOptions_getExtendedOpaque ())) - pass (1, decl_lookupImp (decl_getSymName (n)), (parserFunction) {(parserFunction_t) mcp1_CompilationUnit}, (decl_isNodeF) {(decl_isNodeF_t) decl_isImp}, (openFunction) {(openFunction_t) openMod}); + { + pass (1, decl_lookupImp (decl_getSymName (n)), (parserFunction) {(parserFunction_t) mcp1_CompilationUnit}, (decl_isNodeF) {(decl_isNodeF_t) decl_isImp}, (openFunction) {(openFunction_t) openMod}); + } } else - pass (1, n, (parserFunction) {(parserFunction_t) mcp1_CompilationUnit}, (decl_isNodeF) {(decl_isNodeF_t) decl_isImpOrModule}, (openFunction) {(openFunction_t) openMod}); + { + pass (1, n, (parserFunction) {(parserFunction_t) mcp1_CompilationUnit}, (decl_isNodeF) {(decl_isNodeF_t) decl_isImpOrModule}, (openFunction) {(openFunction_t) openMod}); + } } @@ -348,10 +366,14 @@ static void p2 (decl_node n) /* avoid dangling else. */ pass (2, n, (parserFunction) {(parserFunction_t) mcp2_CompilationUnit}, (decl_isNodeF) {(decl_isNodeF_t) decl_isDef}, (openFunction) {(openFunction_t) openDef}); if ((decl_hasHidden (n)) && (mcOptions_getExtendedOpaque ())) - pass (2, decl_lookupImp (decl_getSymName (n)), (parserFunction) {(parserFunction_t) mcp2_CompilationUnit}, (decl_isNodeF) {(decl_isNodeF_t) decl_isImp}, (openFunction) {(openFunction_t) openMod}); + { + pass (2, decl_lookupImp (decl_getSymName (n)), (parserFunction) {(parserFunction_t) mcp2_CompilationUnit}, (decl_isNodeF) {(decl_isNodeF_t) decl_isImp}, (openFunction) {(openFunction_t) openMod}); + } } else - pass (2, n, (parserFunction) {(parserFunction_t) mcp2_CompilationUnit}, (decl_isNodeF) {(decl_isNodeF_t) decl_isImpOrModule}, (openFunction) {(openFunction_t) openMod}); + { + pass (2, n, (parserFunction) {(parserFunction_t) mcp2_CompilationUnit}, (decl_isNodeF) {(decl_isNodeF_t) decl_isImpOrModule}, (openFunction) {(openFunction_t) openMod}); + } } @@ -366,10 +388,14 @@ static void p3 (decl_node n) /* avoid dangling else. */ pass (3, n, (parserFunction) {(parserFunction_t) mcp3_CompilationUnit}, (decl_isNodeF) {(decl_isNodeF_t) decl_isDef}, (openFunction) {(openFunction_t) openDef}); if ((decl_hasHidden (n)) && (mcOptions_getExtendedOpaque ())) - pass (3, decl_lookupImp (decl_getSymName (n)), (parserFunction) {(parserFunction_t) mcp3_CompilationUnit}, (decl_isNodeF) {(decl_isNodeF_t) decl_isImp}, (openFunction) {(openFunction_t) openMod}); + { + pass (3, decl_lookupImp (decl_getSymName (n)), (parserFunction) {(parserFunction_t) mcp3_CompilationUnit}, (decl_isNodeF) {(decl_isNodeF_t) decl_isImp}, (openFunction) {(openFunction_t) openMod}); + } } else - pass (3, n, (parserFunction) {(parserFunction_t) mcp3_CompilationUnit}, (decl_isNodeF) {(decl_isNodeF_t) decl_isImpOrModule}, (openFunction) {(openFunction_t) openMod}); + { + pass (3, n, (parserFunction) {(parserFunction_t) mcp3_CompilationUnit}, (decl_isNodeF) {(decl_isNodeF_t) decl_isImpOrModule}, (openFunction) {(openFunction_t) openMod}); + } } @@ -384,10 +410,14 @@ static void p4 (decl_node n) /* avoid dangling else. */ pass (4, n, (parserFunction) {(parserFunction_t) mcp4_CompilationUnit}, (decl_isNodeF) {(decl_isNodeF_t) decl_isDef}, (openFunction) {(openFunction_t) openDef}); if ((decl_hasHidden (n)) && (mcOptions_getExtendedOpaque ())) - pass (4, decl_lookupImp (decl_getSymName (n)), (parserFunction) {(parserFunction_t) mcp4_CompilationUnit}, (decl_isNodeF) {(decl_isNodeF_t) decl_isImp}, (openFunction) {(openFunction_t) openMod}); + { + pass (4, decl_lookupImp (decl_getSymName (n)), (parserFunction) {(parserFunction_t) mcp4_CompilationUnit}, (decl_isNodeF) {(decl_isNodeF_t) decl_isImp}, (openFunction) {(openFunction_t) openMod}); + } } else - pass (4, n, (parserFunction) {(parserFunction_t) mcp4_CompilationUnit}, (decl_isNodeF) {(decl_isNodeF_t) decl_isImpOrModule}, (openFunction) {(openFunction_t) openMod}); + { + pass (4, n, (parserFunction) {(parserFunction_t) mcp4_CompilationUnit}, (decl_isNodeF) {(decl_isNodeF_t) decl_isImpOrModule}, (openFunction) {(openFunction_t) openMod}); + } } @@ -414,10 +444,14 @@ static unsigned int doOpen (decl_node n, DynamicStrings_String symName, DynamicS decl_setSource (n, nameKey_makekey (DynamicStrings_string (postProcessed))); decl_setCurrentModule (n); if (mcLexBuf_openSource (postProcessed)) - return TRUE; + { + return TRUE; + } mcPrintf_fprintf1 (FIO_StdErr, (char *) "failed to open %s\\n", 19, (unsigned char *) &fileName, (sizeof (fileName)-1)); if (exitOnFailure) - libc_exit (1); + { + libc_exit (1); + } return FALSE; } @@ -443,11 +477,15 @@ static unsigned int openDef (decl_node n, unsigned int exitOnFailure) { mcPrintf_fprintf1 (FIO_StdErr, (char *) "failed to find definition module %s.def\\n", 41, (unsigned char *) &symName, (sizeof (symName)-1)); if (exitOnFailure) - libc_exit (1); + { + libc_exit (1); + } } } else - fileName = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (sourceName)); + { + fileName = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (sourceName)); + } return doOpen (n, symName, fileName, exitOnFailure); } @@ -472,15 +510,23 @@ static unsigned int openMod (decl_node n, unsigned int exitOnFailure) if (! (mcSearch_findSourceModFile (symName, &fileName))) { if (decl_isImp (n)) - mcPrintf_fprintf1 (FIO_StdErr, (char *) "failed to find implementation module %s.mod\\n", 45, (unsigned char *) &symName, (sizeof (symName)-1)); + { + mcPrintf_fprintf1 (FIO_StdErr, (char *) "failed to find implementation module %s.mod\\n", 45, (unsigned char *) &symName, (sizeof (symName)-1)); + } else - mcPrintf_fprintf1 (FIO_StdErr, (char *) "failed to find program module %s.mod\\n", 38, (unsigned char *) &symName, (sizeof (symName)-1)); + { + mcPrintf_fprintf1 (FIO_StdErr, (char *) "failed to find program module %s.mod\\n", 38, (unsigned char *) &symName, (sizeof (symName)-1)); + } if (exitOnFailure) - libc_exit (1); + { + libc_exit (1); + } } } else - fileName = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (sourceName)); + { + fileName = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (sourceName)); + } return doOpen (n, symName, fileName, exitOnFailure); } @@ -529,12 +575,16 @@ static void doPass (unsigned int parseDefs, unsigned int parseMain, unsigned int { decl_unsetVisited (decl_getMainModule ()); if (parseDefs && (decl_isImp (decl_getMainModule ()))) - /* we need to parse the definition module of a corresponding implementation module. */ - (*p.proc) ((void *) decl_lookupDef (decl_getSymName (decl_getMainModule ()))); + { + /* we need to parse the definition module of a corresponding implementation module. */ + (*p.proc) ((void *) decl_lookupDef (decl_getSymName (decl_getMainModule ()))); + } (*p.proc) ((void *) decl_getMainModule ()); } if (parseDefs) - decl_foreachDefModuleDo (p); + { + decl_foreachDefModuleDo (p); + } mcError_flushWarnings (); mcError_flushErrors (); setToPassNo (0); @@ -568,7 +618,9 @@ static void init (void) void mcComp_compile (DynamicStrings_String s) { if (s != NULL) - doCompile (s); + { + doCompile (s); + } } --- a/src/gcc/gm2/mc-boot/GmcDebug.c +++ b/src/gcc/gm2/mc-boot/GmcDebug.c @@ -52,7 +52,9 @@ void mcDebug_writeDebug (char *a_, unsigned int _a_high); void mcDebug_assert (unsigned int q) { if (! q) - mcError_internalError ((char *) "assert failed", 13, (char *) "../../gcc-versionno/gcc/gm2/mc/mcDebug.mod", 42, 36); + { + mcError_internalError ((char *) "assert failed", 13, (char *) "../../gcc-versionno/gcc/gm2/mc/mcDebug.mod", 42, 36); + } } --- a/src/gcc/gm2/mc-boot/GmcError.c +++ b/src/gcc/gm2/mc-boot/GmcError.c @@ -292,9 +292,13 @@ static void cast (unsigned char *a, unsigned int _a_high, unsigned char *b_, uns /* make a local copy of each unbounded array. */ memcpy (b, b_, _b_high+1); - if ((_a_high) == (_b_high)) - for (i=0; i<=_a_high; i++) - a[i] = b[i]; + if (_a_high == _b_high) + { + for (i=0; i<=_a_high; i++) + { + a[i] = b[i]; + } + } } static unsigned int translateNameToCharStar (char *a, unsigned int _a_high, unsigned int n) @@ -322,8 +326,10 @@ static unsigned int translateNameToCharStar (char *a, unsigned int _a_high, unsi } argno += 1; if (argno > n) - /* all done */ - return FALSE; + { + /* all done */ + return FALSE; + } } i += 1; } @@ -346,9 +352,13 @@ static void outString (DynamicStrings_String file, unsigned int line, unsigned i col += 1; if (Xcode) - leader = FormatStrings_Sprintf2 (DynamicStrings_Mark (DynamicStrings_InitString ((char *) "%s:%d:", 6)), (unsigned char *) &file, (sizeof (file)-1), (unsigned char *) &line, (sizeof (line)-1)); + { + leader = FormatStrings_Sprintf2 (DynamicStrings_Mark (DynamicStrings_InitString ((char *) "%s:%d:", 6)), (unsigned char *) &file, (sizeof (file)-1), (unsigned char *) &line, (sizeof (line)-1)); + } else - leader = FormatStrings_Sprintf3 (DynamicStrings_Mark (DynamicStrings_InitString ((char *) "%s:%d:%d:", 9)), (unsigned char *) &file, (sizeof (file)-1), (unsigned char *) &line, (sizeof (line)-1), (unsigned char *) &col, (sizeof (col)-1)); + { + leader = FormatStrings_Sprintf3 (DynamicStrings_Mark (DynamicStrings_InitString ((char *) "%s:%d:%d:", 9)), (unsigned char *) &file, (sizeof (file)-1), (unsigned char *) &line, (sizeof (line)-1), (unsigned char *) &col, (sizeof (col)-1)); + } p = DynamicStrings_string (s); newline = TRUE; space = FALSE; @@ -366,7 +376,9 @@ static void outString (DynamicStrings_String file, unsigned int line, unsigned i newline = (*p) == ASCII_nl; space = (*p) == ' '; if (newline && Xcode) - mcPrintf_printf1 ((char *) "(pos: %d)", 9, (unsigned char *) &col, (sizeof (col)-1)); + { + mcPrintf_printf1 ((char *) "(pos: %d)", 9, (unsigned char *) &col, (sizeof (col)-1)); + } StdIO_Write ((*p)); p += 1; } @@ -375,7 +387,9 @@ static void outString (DynamicStrings_String file, unsigned int line, unsigned i if (Xcode) { if (! space) - StdIO_Write (' '); + { + StdIO_Write (' '); + } mcPrintf_printf1 ((char *) "(pos: %d)", 9, (unsigned char *) &col, (sizeof (col)-1)); } StdIO_Write (ASCII_nl); @@ -409,7 +423,9 @@ static DynamicStrings_String doFormat1 (char *a_, unsigned int _a_high, unsigned s = FormatStrings_Sprintf1 (DynamicStrings_Mark (DynamicStrings_InitString ((char *) a, _a_high)), (unsigned char *) &s, (sizeof (s)-1)); } else - s = FormatStrings_Sprintf1 (DynamicStrings_Mark (DynamicStrings_InitString ((char *) a, _a_high)), (unsigned char *) w, _w_high); + { + s = FormatStrings_Sprintf1 (DynamicStrings_Mark (DynamicStrings_InitString ((char *) a, _a_high)), (unsigned char *) w, _w_high); + } return s; } @@ -599,13 +615,21 @@ static void checkIncludes (unsigned int token, unsigned int depth) { lineno = mcLexBuf_tokenToLineNo (token, depth+1); if (depth == 0) - mcPrintf_printf2 ((char *) "In file included from %s:%d", 27, (unsigned char *) &included, (sizeof (included)-1), (unsigned char *) &lineno, (sizeof (lineno)-1)); + { + mcPrintf_printf2 ((char *) "In file included from %s:%d", 27, (unsigned char *) &included, (sizeof (included)-1), (unsigned char *) &lineno, (sizeof (lineno)-1)); + } else - mcPrintf_printf2 ((char *) " from %s:%d", 27, (unsigned char *) &included, (sizeof (included)-1), (unsigned char *) &lineno, (sizeof (lineno)-1)); + { + mcPrintf_printf2 ((char *) " from %s:%d", 27, (unsigned char *) &included, (sizeof (included)-1), (unsigned char *) &lineno, (sizeof (lineno)-1)); + } if ((mcLexBuf_findFileNameFromToken (token, depth+2)) == NULL) - mcPrintf_printf0 ((char *) ":\\n", 3); + { + mcPrintf_printf0 ((char *) ":\\n", 3); + } else - mcPrintf_printf0 ((char *) ",\\n", 3); + { + mcPrintf_printf0 ((char *) ",\\n", 3); + } checkIncludes (token, depth+1); } } @@ -622,28 +646,34 @@ static unsigned int flushAll (mcError_error e, unsigned int FatalStatus) written = FALSE; if (e != NULL) - do { - if ((FatalStatus == e->fatal) && (e->s != NULL)) - { - checkIncludes (e->token, 0); - if (e->fatal) - e->s = DynamicStrings_ConCat (DynamicStrings_InitString ((char *) " error: ", 8), DynamicStrings_Mark (e->s)); - else - e->s = DynamicStrings_ConCat (DynamicStrings_InitString ((char *) " warning: ", 10), DynamicStrings_Mark (e->s)); - outString (mcLexBuf_findFileNameFromToken (e->token, 0), mcLexBuf_tokenToLineNo (e->token, 0), mcLexBuf_tokenToColumnNo (e->token, 0), e->s); - if ((e->child != NULL) && (flushAll (e->child, FatalStatus))) - {} /* empty. */ - e->s = NULL; - written = TRUE; - } - f = e; - e = e->next; - if (! Debugging) - { - f->s = DynamicStrings_KillString (f->s); - Storage_DEALLOCATE ((void **) &f, sizeof (_T1)); - } - } while (! (e == NULL)); + { + do { + if ((FatalStatus == e->fatal) && (e->s != NULL)) + { + checkIncludes (e->token, 0); + if (e->fatal) + { + e->s = DynamicStrings_ConCat (DynamicStrings_InitString ((char *) " error: ", 8), DynamicStrings_Mark (e->s)); + } + else + { + e->s = DynamicStrings_ConCat (DynamicStrings_InitString ((char *) " warning: ", 10), DynamicStrings_Mark (e->s)); + } + outString (mcLexBuf_findFileNameFromToken (e->token, 0), mcLexBuf_tokenToLineNo (e->token, 0), mcLexBuf_tokenToColumnNo (e->token, 0), e->s); + if ((e->child != NULL) && (flushAll (e->child, FatalStatus))) + {} /* empty. */ + e->s = NULL; + written = TRUE; + } + f = e; + e = e->next; + if (! Debugging) + { + f->s = DynamicStrings_KillString (f->s); + Storage_DEALLOCATE ((void **) &f, sizeof (_T1)); + } + } while (! (e == NULL)); + } return written; } @@ -789,7 +819,9 @@ mcError_error mcError_newError (unsigned int atTokenNo) { f = head; while ((f->next != NULL) && (f->next->token < atTokenNo)) - f = f->next; + { + f = f->next; + } e->next = f->next; f->next = e; } @@ -823,7 +855,9 @@ mcError_error mcError_chainError (unsigned int atTokenNo, mcError_error e) mcError_error f; if (e == NULL) - return mcError_newError (atTokenNo); + { + return mcError_newError (atTokenNo); + } else { Storage_ALLOCATE ((void **) &f, sizeof (_T1)); @@ -849,9 +883,13 @@ void mcError_errorFormat0 (mcError_error e, char *a_, unsigned int _a_high) errorFormat routines provide a printf capability for the error handle. */ if (e->s == NULL) - e->s = FormatStrings_Sprintf0 (DynamicStrings_Mark (DynamicStrings_InitString ((char *) a, _a_high))); + { + e->s = FormatStrings_Sprintf0 (DynamicStrings_Mark (DynamicStrings_InitString ((char *) a, _a_high))); + } else - e->s = DynamicStrings_ConCat (e->s, DynamicStrings_Mark (FormatStrings_Sprintf0 (DynamicStrings_Mark (DynamicStrings_InitString ((char *) a, _a_high))))); + { + e->s = DynamicStrings_ConCat (e->s, DynamicStrings_Mark (FormatStrings_Sprintf0 (DynamicStrings_Mark (DynamicStrings_InitString ((char *) a, _a_high))))); + } } void mcError_errorFormat1 (mcError_error e, char *a_, unsigned int _a_high, unsigned char *w_, unsigned int _w_high) @@ -866,9 +904,13 @@ void mcError_errorFormat1 (mcError_error e, char *a_, unsigned int _a_high, unsi s1 = doFormat1 ((char *) a, _a_high, (unsigned char *) w, _w_high); if (e->s == NULL) - e->s = s1; + { + e->s = s1; + } else - e->s = DynamicStrings_ConCat (e->s, DynamicStrings_Mark (s1)); + { + e->s = DynamicStrings_ConCat (e->s, DynamicStrings_Mark (s1)); + } } void mcError_errorFormat2 (mcError_error e, char *a_, unsigned int _a_high, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high) @@ -885,9 +927,13 @@ void mcError_errorFormat2 (mcError_error e, char *a_, unsigned int _a_high, unsi s1 = doFormat2 ((char *) a, _a_high, (unsigned char *) w1, _w1_high, (unsigned char *) w2, _w2_high); if (e->s == NULL) - e->s = s1; + { + e->s = s1; + } else - e->s = DynamicStrings_ConCat (e->s, DynamicStrings_Mark (s1)); + { + e->s = DynamicStrings_ConCat (e->s, DynamicStrings_Mark (s1)); + } } void mcError_errorFormat3 (mcError_error e, char *a_, unsigned int _a_high, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high, unsigned char *w3_, unsigned int _w3_high) @@ -906,9 +952,13 @@ void mcError_errorFormat3 (mcError_error e, char *a_, unsigned int _a_high, unsi s1 = doFormat3 ((char *) a, _a_high, (unsigned char *) w1, _w1_high, (unsigned char *) w2, _w2_high, (unsigned char *) w3, _w3_high); if (e->s == NULL) - e->s = s1; + { + e->s = s1; + } else - e->s = DynamicStrings_ConCat (e->s, DynamicStrings_Mark (s1)); + { + e->s = DynamicStrings_ConCat (e->s, DynamicStrings_Mark (s1)); + } } void mcError_errorString (mcError_error e, DynamicStrings_String str) @@ -955,7 +1005,9 @@ void mcError_errorStringsAt2 (DynamicStrings_String s1, DynamicStrings_String s2 mcError_error e; if (s1 == s2) - s2 = DynamicStrings_Dup (s1); + { + s2 = DynamicStrings_Dup (s1); + } e = mcError_newError (tok1); mcError_errorString (e, s1); mcError_errorString (mcError_chainError (tok2, e), s2); @@ -1000,7 +1052,9 @@ void mcError_warnStringsAt2 (DynamicStrings_String s1, DynamicStrings_String s2, mcError_error e; if (s1 == s2) - s2 = DynamicStrings_Dup (s1); + { + s2 = DynamicStrings_Dup (s1); + } e = mcError_newWarning (tok1); mcError_errorString (e, s1); mcError_errorString (mcError_chainError (tok2, e), s2); @@ -1093,7 +1147,9 @@ void mcError_errorAbort0 (char *a_, unsigned int _a_high) mcError_flushWarnings (); if (! (StrLib_StrEqual ((char *) a, _a_high, (char *) "", 0))) - mcError_writeFormat0 ((char *) a, _a_high); + { + mcError_writeFormat0 ((char *) a, _a_high); + } if (! (flushAll (head, TRUE))) { mcError_writeFormat0 ((char *) "unidentified error", 18); --- a/src/gcc/gm2/mc-boot/GmcFileName.c +++ b/src/gcc/gm2/mc-boot/GmcFileName.c @@ -72,9 +72,13 @@ DynamicStrings_String mcFileName_extractModule (DynamicStrings_String filename); DynamicStrings_String mcFileName_calculateFileName (DynamicStrings_String module, DynamicStrings_String extension) { if (MaxFileName == 0) - return DynamicStrings_ConCat (DynamicStrings_ConCatChar (DynamicStrings_Slice (module, 0, MaxFileName), '.'), extension); + { + return DynamicStrings_ConCat (DynamicStrings_ConCatChar (DynamicStrings_Slice (module, 0, MaxFileName), '.'), extension); + } else - return DynamicStrings_ConCat (DynamicStrings_ConCatChar (DynamicStrings_Slice (module, 0, (MaxFileName-(DynamicStrings_Length (extension)))-1), '.'), extension); + { + return DynamicStrings_ConCat (DynamicStrings_ConCatChar (DynamicStrings_Slice (module, 0, (MaxFileName-(DynamicStrings_Length (extension)))-1), '.'), extension); + } } @@ -98,9 +102,13 @@ DynamicStrings_String mcFileName_calculateStemName (DynamicStrings_String module DynamicStrings_String mcFileName_extractExtension (DynamicStrings_String filename, DynamicStrings_String ext) { if (DynamicStrings_Equal (ext, DynamicStrings_Mark (DynamicStrings_Slice (filename, (int) -(DynamicStrings_Length (ext)), 0)))) - return DynamicStrings_Slice (filename, 0, (int) -(DynamicStrings_Length (ext))); + { + return DynamicStrings_Slice (filename, 0, (int) -(DynamicStrings_Length (ext))); + } else - return filename; + { + return filename; + } } @@ -115,9 +123,13 @@ DynamicStrings_String mcFileName_extractModule (DynamicStrings_String filename) i = DynamicStrings_Index (filename, Directory, 0); if (i == -1) - return DynamicStrings_Dup (filename); + { + return DynamicStrings_Dup (filename); + } else - return DynamicStrings_Slice (filename, i+1, 0); + { + return DynamicStrings_Slice (filename, i+1, 0); + } } void _M2_mcFileName_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[]) --- a/src/gcc/gm2/mc-boot/GmcLexBuf.c +++ b/src/gcc/gm2/mc-boot/GmcLexBuf.c @@ -421,14 +421,20 @@ static void debugLex (unsigned int n) tokenBucket b; if (nextTokNo > n) - o = nextTokNo-n; + { + o = nextTokNo-n; + } else - o = 0; + { + o = 0; + } i = 0; do { t = o+i; if (nextTokNo == t) - mcPrintf_printf0 ((char *) "nextTokNo ", 10); + { + mcPrintf_printf0 ((char *) "nextTokNo ", 10); + } b = findtokenBucket (&t); if (b == NULL) { @@ -461,7 +467,9 @@ static void seekTo (unsigned int t) t -= 1; b = findtokenBucket (&t); if (b == NULL) - updateFromBucket (b, t); + { + updateFromBucket (b, t); + } } } @@ -480,7 +488,9 @@ static tokenBucket peeptokenBucket (unsigned int *t) ct = mcLexBuf_currenttoken; if (Debugging) - debugLex (5); + { + debugLex (5); + } old = mcLexBuf_getTokenNo (); do { n = (*t); @@ -503,14 +513,22 @@ static tokenBucket peeptokenBucket (unsigned int *t) (*t) = n; nextTokNo = old+1; if (Debugging) - mcPrintf_printf2 ((char *) "nextTokNo = %d, old = %d\\n", 26, (unsigned char *) &nextTokNo, (sizeof (nextTokNo)-1), (unsigned char *) &old, (sizeof (old)-1)); + { + mcPrintf_printf2 ((char *) "nextTokNo = %d, old = %d\\n", 26, (unsigned char *) &nextTokNo, (sizeof (nextTokNo)-1), (unsigned char *) &old, (sizeof (old)-1)); + } b = findtokenBucket (&old); if (Debugging) - mcPrintf_printf1 ((char *) " adjusted old = %d\\n", 21, (unsigned char *) &old, (sizeof (old)-1)); + { + mcPrintf_printf1 ((char *) " adjusted old = %d\\n", 21, (unsigned char *) &old, (sizeof (old)-1)); + } if (b != NULL) - updateFromBucket (b, old); + { + updateFromBucket (b, old); + } if (Debugging) - debugLex (5); + { + debugLex (5); + } mcDebug_assert (ct == mcLexBuf_currenttoken); return b; } @@ -542,29 +560,37 @@ static void peepAfterComment (void) t = cno+peep; b = peeptokenBucket (&t); if ((b == NULL) || (mcLexBuf_currenttoken == mcReserved_eoftok)) - finished = TRUE; + { + finished = TRUE; + } else { nextline = b->buf.array[t].line; if (nextline == curline) - switch (b->buf.array[t].token) - { - case mcReserved_eoftok: - case mcReserved_endtok: - finished = TRUE; - break; - - case mcReserved_commenttok: - if (mcComment_isAfterComment (b->buf.array[t].com)) - afterComment = b->buf.array[t].com; - break; - - - default: - break; - } + { + switch (b->buf.array[t].token) + { + case mcReserved_eoftok: + case mcReserved_endtok: + finished = TRUE; + break; + + case mcReserved_commenttok: + if (mcComment_isAfterComment (b->buf.array[t].com)) + { + afterComment = b->buf.array[t].com; + } + break; + + + default: + break; + } + } else - finished = TRUE; + { + finished = TRUE; + } } peep += 1; } while (! (finished)); @@ -627,7 +653,9 @@ static sourceList newElement (void * s) Storage_ALLOCATE ((void **) &l, sizeof (_T1)); if (l == NULL) - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } else { l->name = DynamicStrings_InitStringCharStar (s); @@ -1053,9 +1081,13 @@ static void updateFromBucket (tokenBucket b, unsigned int offset) mcLexBuf_currentinteger = b->buf.array[offset].int_; mcLexBuf_currentcomment = b->buf.array[offset].com; if (mcLexBuf_currentcomment != NULL) - mcLexBuf_lastcomment = mcLexBuf_currentcomment; + { + mcLexBuf_lastcomment = mcLexBuf_currentcomment; + } if (Debugging) - mcPrintf_printf3 ((char *) "line %d (# %d %d) ", 19, (unsigned char *) &b->buf.array[offset].line, (sizeof (b->buf.array[offset].line)-1), (unsigned char *) &offset, (sizeof (offset)-1), (unsigned char *) &nextTokNo, (sizeof (nextTokNo)-1)); + { + mcPrintf_printf3 ((char *) "line %d (# %d %d) ", 19, (unsigned char *) &b->buf.array[offset].line, (sizeof (b->buf.array[offset].line)-1), (unsigned char *) &offset, (sizeof (offset)-1), (unsigned char *) &nextTokNo, (sizeof (nextTokNo)-1)); + } } @@ -1081,36 +1113,48 @@ static void doGetToken (void) { a = mcflex_getToken (); if (listOfTokens.tail == NULL) - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } } if (nextTokNo >= listOfTokens.lastBucketOffset) - /* nextTokNo is in the last bucket or needs to be read. */ - if ((nextTokNo-listOfTokens.lastBucketOffset) < listOfTokens.tail->len) - { - if (Debugging) - mcPrintf_printf0 ((char *) "fetching token from buffer (updateFromBucket)\\n", 47); - updateFromBucket (listOfTokens.tail, nextTokNo-listOfTokens.lastBucketOffset); - } - else - { - if (Debugging) - mcPrintf_printf0 ((char *) "calling flex to place token into buffer\\n", 41); - /* call the lexical phase to place a new token into the last bucket. */ - a = mcflex_getToken (); - mcLexBuf_getToken (); /* and call ourselves again to collect the token from bucket. */ - return; /* and call ourselves again to collect the token from bucket. */ - } + { + /* nextTokNo is in the last bucket or needs to be read. */ + if ((nextTokNo-listOfTokens.lastBucketOffset) < listOfTokens.tail->len) + { + if (Debugging) + { + mcPrintf_printf0 ((char *) "fetching token from buffer (updateFromBucket)\\n", 47); + } + updateFromBucket (listOfTokens.tail, nextTokNo-listOfTokens.lastBucketOffset); + } + else + { + if (Debugging) + { + mcPrintf_printf0 ((char *) "calling flex to place token into buffer\\n", 41); + } + /* call the lexical phase to place a new token into the last bucket. */ + a = mcflex_getToken (); + mcLexBuf_getToken (); /* and call ourselves again to collect the token from bucket. */ + return; /* and call ourselves again to collect the token from bucket. */ + } + } else { if (Debugging) - mcPrintf_printf0 ((char *) "fetching token from buffer\\n", 28); + { + mcPrintf_printf0 ((char *) "fetching token from buffer\\n", 28); + } t = nextTokNo; b = findtokenBucket (&t); updateFromBucket (b, t); } } if (Debugging) - displayToken (mcLexBuf_currenttoken); + { + displayToken (mcLexBuf_currenttoken); + } nextTokNo += 1; } @@ -1123,7 +1167,9 @@ static void doGetToken (void) static void syncOpenWithBuffer (void) { if (listOfTokens.tail != NULL) - nextTokNo = listOfTokens.lastBucketOffset+listOfTokens.tail->len; + { + nextTokNo = listOfTokens.lastBucketOffset+listOfTokens.tail->len; + } } @@ -1139,9 +1185,13 @@ static tokenBucket findtokenBucket (unsigned int *tokenNo) while (b != NULL) { if ((*tokenNo) < b->len) - return b; + { + return b; + } else - (*tokenNo) -= b->len; + { + (*tokenNo) -= b->len; + } b = b->next; } return NULL; @@ -1176,6 +1226,7 @@ static void addTokToList (mcReserved_toktype t, nameKey_Name n, int i, mcComment } else if (listOfTokens.tail->len == MaxBucketSize) { + /* avoid dangling else. */ mcDebug_assert (listOfTokens.tail->next == NULL); Storage_ALLOCATE ((void **) &listOfTokens.tail->next, sizeof (_T2)); if (listOfTokens.tail->next == NULL) @@ -1216,12 +1267,18 @@ static unsigned int isLastTokenEof (void) { b = listOfTokens.head; if (b == listOfTokens.tail) - return FALSE; + { + return FALSE; + } while (b->next != listOfTokens.tail) - b = b->next; + { + b = b->next; + } } else - b = listOfTokens.tail; + { + b = listOfTokens.tail; + } mcDebug_assert (b->len > 0); /* len should always be >0 */ return b->buf.array[b->len-1].token == mcReserved_eoftok; /* len should always be >0 */ } @@ -1286,15 +1343,19 @@ unsigned int mcLexBuf_openSource (DynamicStrings_String s) return TRUE; } else - if (mcflex_openSource (DynamicStrings_string (s))) - { - mcLexBuf_setFile (DynamicStrings_string (s)); - syncOpenWithBuffer (); - mcLexBuf_getToken (); - return TRUE; - } - else - return FALSE; + { + if (mcflex_openSource (DynamicStrings_string (s))) + { + mcLexBuf_setFile (DynamicStrings_string (s)); + syncOpenWithBuffer (); + mcLexBuf_getToken (); + return TRUE; + } + else + { + return FALSE; + } + } } @@ -1305,8 +1366,12 @@ unsigned int mcLexBuf_openSource (DynamicStrings_String s) void mcLexBuf_closeSource (void) { if (useBufferedTokens) - while (mcLexBuf_currenttoken != mcReserved_eoftok) - mcLexBuf_getToken (); + { + while (mcLexBuf_currenttoken != mcReserved_eoftok) + { + mcLexBuf_getToken (); + } + } /* a subsequent call to mcflex.OpenSource will really close the file */ } @@ -1366,11 +1431,13 @@ void mcLexBuf_getToken (void) } else if (mcComment_isBodyComment (mcLexBuf_currentcomment)) { + /* avoid dangling else. */ bodyComment = mcLexBuf_currentcomment; afterComment = NULL; } else if (mcComment_isAfterComment (mcLexBuf_currentcomment)) { + /* avoid dangling else. */ procedureComment = NULL; bodyComment = NULL; afterComment = mcLexBuf_currentcomment; @@ -1390,7 +1457,9 @@ void mcLexBuf_insertToken (mcReserved_toktype token) if (listOfTokens.tail != NULL) { if (listOfTokens.tail->len > 0) - listOfTokens.tail->buf.array[listOfTokens.tail->len-1].token = token; + { + listOfTokens.tail->buf.array[listOfTokens.tail->len-1].token = token; + } addTokToList (mcLexBuf_currenttoken, (nameKey_Name) nameKey_NulName, 0, (mcComment_commentDesc) NULL, mcLexBuf_getLineNo (), mcLexBuf_getColumnNo (), currentSource); mcLexBuf_getToken (); } @@ -1407,7 +1476,9 @@ void mcLexBuf_insertTokenAndRewind (mcReserved_toktype token) if (listOfTokens.tail != NULL) { if (listOfTokens.tail->len > 0) - listOfTokens.tail->buf.array[listOfTokens.tail->len-1].token = token; + { + listOfTokens.tail->buf.array[listOfTokens.tail->len-1].token = token; + } addTokToList (mcLexBuf_currenttoken, (nameKey_Name) nameKey_NulName, 0, (mcComment_commentDesc) NULL, mcLexBuf_getLineNo (), mcLexBuf_getColumnNo (), currentSource); mcLexBuf_currenttoken = token; } @@ -1432,9 +1503,13 @@ unsigned int mcLexBuf_getPreviousTokenLineNo (void) unsigned int mcLexBuf_getLineNo (void) { if (nextTokNo == 0) - return 0; + { + return 0; + } else - return mcLexBuf_tokenToLineNo (mcLexBuf_getTokenNo (), 0); + { + return mcLexBuf_tokenToLineNo (mcLexBuf_getTokenNo (), 0); + } } @@ -1445,9 +1520,13 @@ unsigned int mcLexBuf_getLineNo (void) unsigned int mcLexBuf_getTokenNo (void) { if (nextTokNo == 0) - return 0; + { + return 0; + } else - return nextTokNo-1; + { + return nextTokNo-1; + } } @@ -1466,22 +1545,30 @@ unsigned int mcLexBuf_tokenToLineNo (unsigned int tokenNo, unsigned int depth) b = findtokenBucket (&tokenNo); if (b == NULL) - return 0; + { + return 0; + } else - if (depth == 0) - return b->buf.array[tokenNo].line; - else - { - l = b->buf.array[tokenNo].file->left; - while (depth > 0) - { - l = l->left; - if (l == b->buf.array[tokenNo].file->left) - return 0; - depth -= 1; - } - return l->line; - } + { + if (depth == 0) + { + return b->buf.array[tokenNo].line; + } + else + { + l = b->buf.array[tokenNo].file->left; + while (depth > 0) + { + l = l->left; + if (l == b->buf.array[tokenNo].file->left) + { + return 0; + } + depth -= 1; + } + return l->line; + } + } } @@ -1493,9 +1580,13 @@ unsigned int mcLexBuf_tokenToLineNo (unsigned int tokenNo, unsigned int depth) unsigned int mcLexBuf_getColumnNo (void) { if (nextTokNo == 0) - return 0; + { + return 0; + } else - return mcLexBuf_tokenToColumnNo (mcLexBuf_getTokenNo (), 0); + { + return mcLexBuf_tokenToColumnNo (mcLexBuf_getTokenNo (), 0); + } } @@ -1514,22 +1605,30 @@ unsigned int mcLexBuf_tokenToColumnNo (unsigned int tokenNo, unsigned int depth) b = findtokenBucket (&tokenNo); if (b == NULL) - return 0; + { + return 0; + } else - if (depth == 0) - return b->buf.array[tokenNo].col; - else - { - l = b->buf.array[tokenNo].file->left; - while (depth > 0) - { - l = l->left; - if (l == b->buf.array[tokenNo].file->left) - return 0; - depth -= 1; - } - return l->col; - } + { + if (depth == 0) + { + return b->buf.array[tokenNo].col; + } + else + { + l = b->buf.array[tokenNo].file->left; + while (depth > 0) + { + l = l->left; + if (l == b->buf.array[tokenNo].file->left) + { + return 0; + } + depth -= 1; + } + return l->col; + } + } } @@ -1548,7 +1647,9 @@ DynamicStrings_String mcLexBuf_findFileNameFromToken (unsigned int tokenNo, unsi b = findtokenBucket (&tokenNo); if (b == NULL) - return NULL; + { + return NULL; + } else { l = b->buf.array[tokenNo].file->left; @@ -1556,7 +1657,9 @@ DynamicStrings_String mcLexBuf_findFileNameFromToken (unsigned int tokenNo, unsi { l = l->left; if (l == b->buf.array[tokenNo].file->left) - return NULL; + { + return NULL; + } depth -= 1; } return l->name; @@ -1596,7 +1699,9 @@ void mcLexBuf_addTok (mcReserved_toktype t) void mcLexBuf_addTokCharStar (mcReserved_toktype t, void * s) { if ((libc_strlen (s)) > 80) - stop (); + { + stop (); + } addTokToList (t, nameKey_makekey (s), 0, (mcComment_commentDesc) NULL, mcflex_getLineNo (), mcflex_getColumnNo (), currentSource); currentUsed = TRUE; } @@ -1656,14 +1761,16 @@ void mcLexBuf_pushFile (void * filename) checkIfNeedToDuplicate (); addTo (newElement (filename)); if (Debugging) - if (currentSource->right != currentSource) - { - l = currentSource; - do { - mcPrintf_printf3 ((char *) "name = %s, line = %d, col = %d\\n", 32, (unsigned char *) &l->name, (sizeof (l->name)-1), (unsigned char *) &l->line, (sizeof (l->line)-1), (unsigned char *) &l->col, (sizeof (l->col)-1)); - l = l->right; - } while (! (l == currentSource)); - } + { + if (currentSource->right != currentSource) + { + l = currentSource; + do { + mcPrintf_printf3 ((char *) "name = %s, line = %d, col = %d\\n", 32, (unsigned char *) &l->name, (sizeof (l->name)-1), (unsigned char *) &l->line, (sizeof (l->line)-1), (unsigned char *) &l->col, (sizeof (l->col)-1)); + l = l->right; + } while (! (l == currentSource)); + } + } } --- a/src/gcc/gm2/mc-boot/GmcMetaError.c +++ b/src/gcc/gm2/mc-boot/GmcMetaError.c @@ -397,7 +397,9 @@ static void internalFormat (DynamicStrings_String s, int i, char *m_, unsigned i FIO_WriteLine (FIO_StdOut); s = DynamicStrings_KillString (s); if (i > 0) - i -= 1; + { + i -= 1; + } s = DynamicStrings_Mult (DynamicStrings_InitString ((char *) " ", 1), (unsigned int) i); s = DynamicStrings_ConCatChar (s, '^'); s = SFIO_WriteS (FIO_StdOut, s); @@ -413,7 +415,9 @@ static void internalFormat (DynamicStrings_String s, int i, char *m_, unsigned i static DynamicStrings_String x (DynamicStrings_String a, DynamicStrings_String b) { if (a != b) - mcError_internalError ((char *) "different string returned", 25, (char *) "../../gcc-versionno/gcc/gm2/mc/mcMetaError.mod", 46, 110); + { + mcError_internalError ((char *) "different string returned", 25, (char *) "../../gcc-versionno/gcc/gm2/mc/mcMetaError.mod", 46, 110); + } return a; } @@ -439,7 +443,9 @@ static void then (mcError_error *e, errorType *t, DynamicStrings_String *r, Dyna (*i) += 1; ebnf (e, t, r, s, sym, i, l); if (((*i) < l) && ((DynamicStrings_char (s, (*i))) != '}')) - internalFormat (s, (*i), (char *) "expecting to see }", 18); + { + internalFormat (s, (*i), (char *) "expecting to see }", 18); + } } } @@ -453,7 +459,9 @@ static DynamicStrings_String doNumber (unsigned int bol, varargs_vararg sym, Dyn unsigned int c; if ((DynamicStrings_Length (o)) > 0) - return o; + { + return o; + } else { (*quotes) = FALSE; @@ -473,7 +481,9 @@ static DynamicStrings_String doCount (unsigned int bol, varargs_vararg sym, Dyna unsigned int c; if ((DynamicStrings_Length (o)) > 0) - return o; + { + return o; + } else { (*quotes) = FALSE; @@ -481,7 +491,9 @@ static DynamicStrings_String doCount (unsigned int bol, varargs_vararg sym, Dyna varargs_arg (sym, (unsigned char *) &c, (sizeof (c)-1)); o = DynamicStrings_ConCat (o, StringConvert_ctos (c, 0, ' ')); if (((c % 100) >= 11) && ((c % 100) <= 13)) - o = DynamicStrings_ConCat (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "th", 2))); + { + o = DynamicStrings_ConCat (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "th", 2))); + } else { switch (c % 10) @@ -520,9 +532,13 @@ static DynamicStrings_String doAscii (unsigned int bol, varargs_vararg sym, Dyna varargs_next (sym, bol); varargs_arg (sym, (unsigned char *) &n, (sizeof (n)-1)); if (((DynamicStrings_Length (o)) > 0) || (decl_isTemporary (n))) - return o; + { + return o; + } else - return DynamicStrings_ConCat (o, DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n)))); + { + return DynamicStrings_ConCat (o, DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n)))); + } } @@ -537,22 +553,33 @@ static DynamicStrings_String doName (unsigned int bol, varargs_vararg sym, Dynam varargs_next (sym, bol); varargs_arg (sym, (unsigned char *) &n, (sizeof (n)-1)); if (((DynamicStrings_Length (o)) > 0) || (decl_isTemporary (n))) - return o; - else - if (decl_isZtype (n)) - { - (*quotes) = FALSE; - return DynamicStrings_ConCat (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "the ZType", 9))); - } - else if (decl_isRtype (n)) - { - (*quotes) = FALSE; - return DynamicStrings_ConCat (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "the RType", 9))); - } - else if ((decl_getSymName (n)) != nameKey_NulName) - return DynamicStrings_ConCat (o, DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n)))); - else + { return o; + } + else + { + if (decl_isZtype (n)) + { + (*quotes) = FALSE; + return DynamicStrings_ConCat (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "the ZType", 9))); + } + else if (decl_isRtype (n)) + { + /* avoid dangling else. */ + (*quotes) = FALSE; + return DynamicStrings_ConCat (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "the RType", 9))); + } + else if ((decl_getSymName (n)) != nameKey_NulName) + { + /* avoid dangling else. */ + return DynamicStrings_ConCat (o, DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n)))); + } + else + { + /* avoid dangling else. */ + return o; + } + } } @@ -569,7 +596,9 @@ static DynamicStrings_String doQualified (unsigned int bol, varargs_vararg sym, varargs_next (sym, bol); varargs_arg (sym, (unsigned char *) &n, (sizeof (n)-1)); if (((DynamicStrings_Length (o)) > 0) || (decl_isTemporary (n))) - return o; + { + return o; + } else { s = decl_getScope (n); @@ -581,7 +610,9 @@ static DynamicStrings_String doQualified (unsigned int bol, varargs_vararg sym, o = x (o, DynamicStrings_ConCat (o, DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n))))); } else - o = x (o, doAscii (bol, sym, o)); + { + o = x (o, doAscii (bol, sym, o)); + } varargs_end (&mod); return o; } @@ -601,7 +632,9 @@ static DynamicStrings_String doType (unsigned int bol, varargs_vararg *sym, Dyna varargs_next ((*sym), bol); varargs_arg ((*sym), (unsigned char *) &n, (sizeof (n)-1)); if (((DynamicStrings_Length (o)) > 0) || ((decl_getType (n)) == NULL)) - return o; + { + return o; + } else { n = decl_skipType (decl_getType (n)); @@ -624,16 +657,22 @@ static DynamicStrings_String doSkipType (unsigned int bol, varargs_vararg *sym, varargs_next ((*sym), bol); varargs_arg ((*sym), (unsigned char *) &n, (sizeof (n)-1)); if ((DynamicStrings_Length (o)) > 0) - return o; + { + return o; + } else { n = decl_skipType (decl_getType (n)); varargs_next ((*sym), bol); varargs_replace ((*sym), (unsigned char *) &n, (sizeof (n)-1)); if ((decl_getSymName (n)) == nameKey_NulName) - return o; + { + return o; + } else - return x (o, doAscii (bol, (*sym), o)); + { + return x (o, doAscii (bol, (*sym), o)); + } } } @@ -648,7 +687,9 @@ static DynamicStrings_String doKey (unsigned int bol, varargs_vararg sym, Dynami nameKey_Name n; if ((DynamicStrings_Length (o)) > 0) - return o; + { + return o; + } else { varargs_next (sym, bol); @@ -668,19 +709,27 @@ static mcError_error doError (mcError_error e, errorType t, unsigned int tok) { case chained: if (e == NULL) - mcError_internalError ((char *) "should not be chaining an error onto an empty error note", 56, (char *) "../../gcc-versionno/gcc/gm2/mc/mcMetaError.mod", 46, 356); + { + mcError_internalError ((char *) "should not be chaining an error onto an empty error note", 56, (char *) "../../gcc-versionno/gcc/gm2/mc/mcMetaError.mod", 46, 356); + } else - e = mcError_chainError (tok, e); + { + e = mcError_chainError (tok, e); + } break; case newerror: if (e == NULL) - e = mcError_newError (tok); + { + e = mcError_newError (tok); + } break; case newwarning: if (e == NULL) - e = mcError_newWarning (tok); + { + e = mcError_newWarning (tok); + } break; @@ -753,11 +802,18 @@ static mcError_error doUsed (mcError_error e, errorType t, unsigned int bol, var static DynamicStrings_String ConCatWord (DynamicStrings_String a, DynamicStrings_String b) { if (((DynamicStrings_Length (a)) == 1) && ((DynamicStrings_char (a, 0)) == 'a')) - a = x (a, DynamicStrings_ConCatChar (a, 'n')); + { + a = x (a, DynamicStrings_ConCatChar (a, 'n')); + } else if ((((DynamicStrings_Length (a)) > 1) && ((DynamicStrings_char (a, -1)) == 'a')) && (isWhite (DynamicStrings_char (a, -2)))) - a = x (a, DynamicStrings_ConCatChar (a, 'n')); + { + /* avoid dangling else. */ + a = x (a, DynamicStrings_ConCatChar (a, 'n')); + } if (((DynamicStrings_Length (a)) > 0) && (! (isWhite (DynamicStrings_char (a, -1))))) - a = x (a, DynamicStrings_ConCatChar (a, ' ')); + { + a = x (a, DynamicStrings_ConCatChar (a, ' ')); + } return x (a, DynamicStrings_ConCat (a, b)); } @@ -769,57 +825,126 @@ static DynamicStrings_String ConCatWord (DynamicStrings_String a, DynamicStrings static DynamicStrings_String symDesc (decl_node n, DynamicStrings_String o) { if (decl_isLiteral (n)) - return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "literal", 7))); + { + return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "literal", 7))); + } else if (decl_isConstSet (n)) - /* + { + /* avoid dangling else. */ + /* ELSIF IsConstructor(n) THEN RETURN( ConCatWord (o, Mark (InitString ('constructor'))) ) */ - return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "constant set", 12))); + return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "constant set", 12))); + } else if (decl_isConst (n)) - return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "constant", 8))); + { + /* avoid dangling else. */ + return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "constant", 8))); + } else if (decl_isArray (n)) - return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "array", 5))); + { + /* avoid dangling else. */ + return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "array", 5))); + } else if (decl_isVar (n)) - return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "variable", 8))); + { + /* avoid dangling else. */ + return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "variable", 8))); + } else if (decl_isEnumeration (n)) - return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "enumeration type", 16))); + { + /* avoid dangling else. */ + return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "enumeration type", 16))); + } else if (decl_isEnumerationField (n)) - return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "enumeration field", 17))); + { + /* avoid dangling else. */ + return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "enumeration field", 17))); + } else if (decl_isUnbounded (n)) - return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "unbounded parameter", 19))); + { + /* avoid dangling else. */ + return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "unbounded parameter", 19))); + } else if (decl_isProcType (n)) - return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "procedure type", 14))); + { + /* avoid dangling else. */ + return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "procedure type", 14))); + } else if (decl_isProcedure (n)) - return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "procedure", 9))); + { + /* avoid dangling else. */ + return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "procedure", 9))); + } else if (decl_isPointer (n)) - return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "pointer", 7))); + { + /* avoid dangling else. */ + return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "pointer", 7))); + } else if (decl_isParameter (n)) - if (decl_isVarParam (n)) - return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "var parameter", 13))); - else - return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "parameter", 9))); + { + /* avoid dangling else. */ + if (decl_isVarParam (n)) + { + return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "var parameter", 13))); + } + else + { + return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "parameter", 9))); + } + } else if (decl_isType (n)) - return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "type", 4))); + { + /* avoid dangling else. */ + return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "type", 4))); + } else if (decl_isRecord (n)) - return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "record", 6))); + { + /* avoid dangling else. */ + return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "record", 6))); + } else if (decl_isRecordField (n)) - return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "record field", 12))); + { + /* avoid dangling else. */ + return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "record field", 12))); + } else if (decl_isVarient (n)) - return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "varient record", 14))); + { + /* avoid dangling else. */ + return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "varient record", 14))); + } else if (decl_isModule (n)) - return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "module", 6))); + { + /* avoid dangling else. */ + return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "module", 6))); + } else if (decl_isDef (n)) - return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "definition module", 17))); + { + /* avoid dangling else. */ + return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "definition module", 17))); + } else if (decl_isImp (n)) - return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "implementation module", 21))); + { + /* avoid dangling else. */ + return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "implementation module", 21))); + } else if (decl_isSet (n)) - return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "set", 3))); + { + /* avoid dangling else. */ + return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "set", 3))); + } else if (decl_isSubrange (n)) - return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "subrange", 8))); + { + /* avoid dangling else. */ + return ConCatWord (o, DynamicStrings_Mark (DynamicStrings_InitString ((char *) "subrange", 8))); + } else - return o; + { + /* avoid dangling else. */ + return o; + } } @@ -837,7 +962,9 @@ static DynamicStrings_String doDesc (unsigned int bol, varargs_vararg sym, Dynam varargs_arg (sym, (unsigned char *) &n, (sizeof (n)-1)); o = symDesc (n, o); if ((DynamicStrings_Length (o)) > 0) - (*quotes) = FALSE; + { + (*quotes) = FALSE; + } } return o; } @@ -852,12 +979,18 @@ static DynamicStrings_String addQuoted (DynamicStrings_String r, DynamicStrings_ if ((DynamicStrings_Length (o)) > 0) { if (! (isWhite (DynamicStrings_char (r, -1)))) - r = x (r, DynamicStrings_ConCatChar (r, ' ')); + { + r = x (r, DynamicStrings_ConCatChar (r, ' ')); + } if (quotes) - r = x (r, DynamicStrings_ConCatChar (r, '\'')); + { + r = x (r, DynamicStrings_ConCatChar (r, '\'')); + } r = x (r, DynamicStrings_ConCat (r, o)); if (quotes) - r = x (r, DynamicStrings_ConCatChar (r, '\'')); + { + r = x (r, DynamicStrings_ConCatChar (r, '\'')); + } } return r; } @@ -939,7 +1072,9 @@ static void op (mcError_error *e, errorType *t, DynamicStrings_String *r, Dynami o = DynamicStrings_KillString (o); o = DynamicStrings_InitString ((char *) "", 0); if (((*i) < l) && ((DynamicStrings_char (s, (*i))) != '}')) - internalFormat (s, (*i), (char *) "expecting to see }", 18); + { + internalFormat (s, (*i), (char *) "expecting to see }", 18); + } (*i) -= 1; break; @@ -1002,7 +1137,9 @@ static void percenttoken (mcError_error *e, errorType t, DynamicStrings_String * break; } if (((*i) < l) && ((DynamicStrings_char (s, (*i))) != '}')) - internalFormat (s, (*i), (char *) "expecting to see }", 18); + { + internalFormat (s, (*i), (char *) "expecting to see }", 18); + } } } @@ -1044,10 +1181,14 @@ static void lbra (mcError_error *e, errorType *t, DynamicStrings_String *r, Dyna (*i) += 1; } if ((DynamicStrings_char (s, (*i))) != '%') - internalFormat (s, (*i), (char *) "expecting to see %", 18); + { + internalFormat (s, (*i), (char *) "expecting to see %", 18); + } percenttoken (e, (*t), r, s, sym, i, l, positive); if (((*i) < l) && ((DynamicStrings_char (s, (*i))) != '}')) - internalFormat (s, (*i), (char *) "expecting to see }", 18); + { + internalFormat (s, (*i), (char *) "expecting to see }", 18); + } } } @@ -1082,7 +1223,9 @@ static void ebnf (mcError_error *e, errorType *t, DynamicStrings_String *r, Dyna case '{': lbra (e, t, r, s, sym, i, l); if (((*i) < l) && ((DynamicStrings_char (s, (*i))) != '}')) - internalFormat (s, (*i), (char *) "expecting to see }", 18); + { + internalFormat (s, (*i), (char *) "expecting to see }", 18); + } break; case '}': @@ -1092,7 +1235,9 @@ static void ebnf (mcError_error *e, errorType *t, DynamicStrings_String *r, Dyna default: if ((((isWhite (DynamicStrings_char (s, (*i)))) && ((DynamicStrings_Length ((*r))) > 0)) && (! (isWhite (DynamicStrings_char ((*r), -1))))) || (! (isWhite (DynamicStrings_char (s, (*i)))))) - (*r) = x ((*r), DynamicStrings_ConCatChar ((*r), DynamicStrings_char (s, (*i)))); + { + (*r) = x ((*r), DynamicStrings_ConCatChar ((*r), DynamicStrings_char (s, (*i)))); + } break; } (*i) += 1; --- a/src/gcc/gm2/mc-boot/GmcOptions.c +++ b/src/gcc/gm2/mc-boot/GmcOptions.c @@ -279,7 +279,9 @@ static void displayVersion (unsigned int mustExit) mcPrintf_printf0 ((char *) "This is free software: you are free to change and redistribute it.\\n", 68); mcPrintf_printf0 ((char *) "There is NO WARRANTY, to the extent permitted by law.\\n", 55); if (mustExit) - libc_exit (0); + { + libc_exit (0); + } } @@ -329,9 +331,14 @@ static void displayHelp (void) static void commentBegin (FIO_File f) { if (langC || langCPP) - FIO_WriteString (f, (char *) "/* ", 3); + { + FIO_WriteString (f, (char *) "/* ", 3); + } else if (langM2) - FIO_WriteString (f, (char *) "(* ", 3); + { + /* avoid dangling else. */ + FIO_WriteString (f, (char *) "(* ", 3); + } } @@ -348,6 +355,7 @@ static void commentEnd (FIO_File f) } else if (langM2) { + /* avoid dangling else. */ FIO_WriteString (f, (char *) " *)", 3); FIO_WriteLine (f); } @@ -476,9 +484,13 @@ static void issueGPL (FIO_File f) FIO_WriteLine (f); } if (gplHeader) - gplBody (f); + { + gplBody (f); + } if (glplHeader) - glplBody (f); + { + glplBody (f); + } commentEnd (f); FIO_WriteLine (f); } @@ -579,14 +591,20 @@ static unsigned int optionIs (char *left_, unsigned int _left_high, DynamicStrin memcpy (left, left_, _left_high+1); if ((DynamicStrings_Length (right)) == (StrLib_StrLen ((char *) left, _left_high))) - return DynamicStrings_EqualArray (right, (char *) left, _left_high); + { + return DynamicStrings_EqualArray (right, (char *) left, _left_high); + } else if ((DynamicStrings_Length (right)) > (StrLib_StrLen ((char *) left, _left_high))) { + /* avoid dangling else. */ s = DynamicStrings_Mark (DynamicStrings_Slice (right, 0, (int) StrLib_StrLen ((char *) left, _left_high))); return DynamicStrings_EqualArray (s, (char *) left, _left_high); } else - return FALSE; + { + /* avoid dangling else. */ + return FALSE; + } } @@ -604,16 +622,21 @@ static void setLang (DynamicStrings_String arg) } else if (optionIs ((char *) "c", 1, arg)) { + /* avoid dangling else. */ decl_setLangC (); langC = TRUE; } else if (optionIs ((char *) "m2", 2, arg)) { + /* avoid dangling else. */ decl_setLangM2 (); langM2 = TRUE; } else - displayHelp (); + { + /* avoid dangling else. */ + displayHelp (); + } } @@ -624,45 +647,91 @@ static void setLang (DynamicStrings_String arg) static void handleOption (DynamicStrings_String arg) { if ((optionIs ((char *) "--quiet", 7, arg)) || (optionIs ((char *) "-q", 2, arg))) - setQuiet (TRUE); + { + setQuiet (TRUE); + } else if ((optionIs ((char *) "--verbose", 9, arg)) || (optionIs ((char *) "-v", 2, arg))) - setVerbose (TRUE); + { + /* avoid dangling else. */ + setVerbose (TRUE); + } else if (optionIs ((char *) "--version", 9, arg)) - displayVersion (TRUE); + { + /* avoid dangling else. */ + displayVersion (TRUE); + } else if (optionIs ((char *) "--olang=", 8, arg)) - setLang (DynamicStrings_Slice (arg, 8, 0)); + { + /* avoid dangling else. */ + setLang (DynamicStrings_Slice (arg, 8, 0)); + } else if (optionIs ((char *) "-I", 2, arg)) - setSearchPath (DynamicStrings_Slice (arg, 2, 0)); + { + /* avoid dangling else. */ + setSearchPath (DynamicStrings_Slice (arg, 2, 0)); + } else if ((optionIs ((char *) "--help", 6, arg)) || (optionIs ((char *) "-h", 2, arg))) - displayHelp (); + { + /* avoid dangling else. */ + displayHelp (); + } else if (optionIs ((char *) "--cpp", 5, arg)) - cppProgram = DynamicStrings_InitString ((char *) "cpp", 3); + { + /* avoid dangling else. */ + cppProgram = DynamicStrings_InitString ((char *) "cpp", 3); + } else if (optionIs ((char *) "-o=", 3, arg)) - setOutputFile (DynamicStrings_Slice (arg, 3, 0)); + { + /* avoid dangling else. */ + setOutputFile (DynamicStrings_Slice (arg, 3, 0)); + } else if (optionIs ((char *) "--extended-opaque", 17, arg)) - setExtendedOpaque (TRUE); + { + /* avoid dangling else. */ + setExtendedOpaque (TRUE); + } else if (optionIs ((char *) "--debug-top", 11, arg)) - mcOptions_setDebugTopological (TRUE); + { + /* avoid dangling else. */ + mcOptions_setDebugTopological (TRUE); + } else if (optionIs ((char *) "--h-file-prefix=", 16, arg)) - setHPrefix (DynamicStrings_Slice (arg, 16, 0)); + { + /* avoid dangling else. */ + setHPrefix (DynamicStrings_Slice (arg, 16, 0)); + } else if (optionIs ((char *) "--ignore-fq", 11, arg)) - setIgnoreFQ (TRUE); + { + /* avoid dangling else. */ + setIgnoreFQ (TRUE); + } else if (optionIs ((char *) "--gpl-header", 12, arg)) - gplHeader = TRUE; + { + /* avoid dangling else. */ + gplHeader = TRUE; + } else if (optionIs ((char *) "--glpl-header", 13, arg)) - glplHeader = TRUE; + { + /* avoid dangling else. */ + glplHeader = TRUE; + } else if (optionIs ((char *) "--summary=\"", 11, arg)) { + /* avoid dangling else. */ summary = TRUE; summaryContents = DynamicStrings_Slice (arg, 11, -1); } else if (optionIs ((char *) "--contributed=\"", 15, arg)) { + /* avoid dangling else. */ contributed = TRUE; contributedContents = DynamicStrings_Slice (arg, 13, -1); } else if (optionIs ((char *) "--project=\"", 11, arg)) - projectContents = DynamicStrings_Slice (arg, 10, -1); + { + /* avoid dangling else. */ + projectContents = DynamicStrings_Slice (arg, 10, -1); + } } @@ -684,7 +753,9 @@ DynamicStrings_String mcOptions_handleOptions (void) { /* avoid gcc warning by using compound statement even if not strictly necessary. */ if ((DynamicStrings_char (arg, 0)) == '-') - handleOption (arg); + { + handleOption (arg); + } else { if (! summary) @@ -740,13 +811,17 @@ DynamicStrings_String mcOptions_getCppCommandLine (void) DynamicStrings_String s; if (DynamicStrings_EqualArray (cppProgram, (char *) "", 0)) - return NULL; + { + return NULL; + } else { s = DynamicStrings_Dup (cppProgram); s = DynamicStrings_ConCat (DynamicStrings_ConCatChar (s, ' '), cppArgs); if (mcOptions_getQuiet ()) - s = DynamicStrings_ConCat (DynamicStrings_ConCatChar (s, ' '), DynamicStrings_Mark (DynamicStrings_InitString ((char *) "-quiet", 6))); + { + s = DynamicStrings_ConCat (DynamicStrings_ConCatChar (s, ' '), DynamicStrings_Mark (DynamicStrings_InitString ((char *) "-quiet", 6))); + } return s; } } --- a/src/gcc/gm2/mc-boot/GmcPreprocess.c +++ b/src/gcc/gm2/mc-boot/GmcPreprocess.c @@ -135,14 +135,18 @@ DynamicStrings_String mcPreprocess_preprocessModule (DynamicStrings_String filen command = mcOptions_getCppCommandLine (); if (DynamicStrings_EqualArray (command, (char *) "", 0)) - return filename; + { + return filename; + } else { tempfile = DynamicStrings_InitStringCharStar ((void *) makeTempFile (DynamicStrings_InitString ((char *) "cpp", 3))); commandLine = DynamicStrings_Dup (command); commandLine = DynamicStrings_ConCat (DynamicStrings_ConCat (DynamicStrings_ConCat (DynamicStrings_ConCatChar (DynamicStrings_Dup (commandLine), ' '), filename), DynamicStrings_Mark (DynamicStrings_InitString ((char *) " -o ", 4))), tempfile); if (mcOptions_getVerbose ()) - mcPrintf_fprintf1 (FIO_StdOut, (char *) "%s\\n", 4, (unsigned char *) &commandLine, (sizeof (commandLine)-1)); + { + mcPrintf_fprintf1 (FIO_StdOut, (char *) "%s\\n", 4, (unsigned char *) &commandLine, (sizeof (commandLine)-1)); + } if ((libc_system (DynamicStrings_string (commandLine))) != 0) { mcPrintf_fprintf1 (FIO_StdErr, (char *) "C preprocessor failed when preprocessing %s\\n", 45, (unsigned char *) &filename, (sizeof (filename)-1)); @@ -157,7 +161,9 @@ void _M2_mcPreprocess_init (__attribute__((unused)) int argc, __attribute__((unu { listOfFiles = alists_initList (); if (! (M2RTS_InstallTerminationProcedure ((PROC ) {(PROC_t) removeFiles}))) - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } } void _M2_mcPreprocess_finish (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[]) --- a/src/gcc/gm2/mc-boot/GmcPretty.c +++ b/src/gcc/gm2/mc-boot/GmcPretty.c @@ -312,9 +312,13 @@ void mcPretty_setindent (mcPretty_pretty p, unsigned int n) unsigned int mcPretty_getcurpos (mcPretty_pretty s) { if (s->needsSpace) - return s->curPos+1; + { + return s->curPos+1; + } else - return s->curPos; + { + return s->curPos; + } } --- a/src/gcc/gm2/mc-boot/GmcPrintf.c +++ b/src/gcc/gm2/mc-boot/GmcPrintf.c @@ -156,11 +156,17 @@ static void cast (unsigned char *a, unsigned int _a_high, unsigned char *b_, uns /* make a local copy of each unbounded array. */ memcpy (b, b_, _b_high+1); - if ((_a_high) == (_b_high)) - for (i=0; i<=_a_high; i++) - a[i] = b[i]; + if (_a_high == _b_high) + { + for (i=0; i<=_a_high; i++) + { + a[i] = b[i]; + } + } else - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } } @@ -190,8 +196,10 @@ static unsigned int TranslateNameToCharStar (char *a, unsigned int _a_high, unsi } argno += 1; if (argno > n) - /* all done */ - return FALSE; + { + /* all done */ + return FALSE; + } } i += 1; } --- a/src/gcc/gm2/mc-boot/GmcQuiet.c +++ b/src/gcc/gm2/mc-boot/GmcQuiet.c @@ -42,7 +42,9 @@ void mcQuiet_qprintf0 (char *a_, unsigned int _a_high) memcpy (a, a_, _a_high+1); if (! (mcOptions_getQuiet ())) - mcPrintf_printf0 ((char *) a, _a_high); + { + mcPrintf_printf0 ((char *) a, _a_high); + } } void mcQuiet_qprintf1 (char *a_, unsigned int _a_high, unsigned char *w_, unsigned int _w_high) @@ -55,7 +57,9 @@ void mcQuiet_qprintf1 (char *a_, unsigned int _a_high, unsigned char *w_, unsign memcpy (w, w_, _w_high+1); if (! (mcOptions_getQuiet ())) - mcPrintf_printf1 ((char *) a, _a_high, (unsigned char *) w, _w_high); + { + mcPrintf_printf1 ((char *) a, _a_high, (unsigned char *) w, _w_high); + } } void mcQuiet_qprintf2 (char *a_, unsigned int _a_high, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high) @@ -70,7 +74,9 @@ void mcQuiet_qprintf2 (char *a_, unsigned int _a_high, unsigned char *w1_, unsig memcpy (w2, w2_, _w2_high+1); if (! (mcOptions_getQuiet ())) - mcPrintf_printf2 ((char *) a, _a_high, (unsigned char *) w1, _w1_high, (unsigned char *) w2, _w2_high); + { + mcPrintf_printf2 ((char *) a, _a_high, (unsigned char *) w1, _w1_high, (unsigned char *) w2, _w2_high); + } } void mcQuiet_qprintf3 (char *a_, unsigned int _a_high, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high, unsigned char *w3_, unsigned int _w3_high) @@ -87,7 +93,9 @@ void mcQuiet_qprintf3 (char *a_, unsigned int _a_high, unsigned char *w1_, unsig memcpy (w3, w3_, _w3_high+1); if (! (mcOptions_getQuiet ())) - mcPrintf_printf3 ((char *) a, _a_high, (unsigned char *) w1, _w1_high, (unsigned char *) w2, _w2_high, (unsigned char *) w3, _w3_high); + { + mcPrintf_printf3 ((char *) a, _a_high, (unsigned char *) w1, _w1_high, (unsigned char *) w2, _w2_high, (unsigned char *) w3, _w3_high); + } } void mcQuiet_qprintf4 (char *a_, unsigned int _a_high, unsigned char *w1_, unsigned int _w1_high, unsigned char *w2_, unsigned int _w2_high, unsigned char *w3_, unsigned int _w3_high, unsigned char *w4_, unsigned int _w4_high) @@ -106,7 +114,9 @@ void mcQuiet_qprintf4 (char *a_, unsigned int _a_high, unsigned char *w1_, unsig memcpy (w4, w4_, _w4_high+1); if (! (mcOptions_getQuiet ())) - mcPrintf_printf4 ((char *) a, _a_high, (unsigned char *) w1, _w1_high, (unsigned char *) w2, _w2_high, (unsigned char *) w3, _w3_high, (unsigned char *) w4, _w4_high); + { + mcPrintf_printf4 ((char *) a, _a_high, (unsigned char *) w1, _w1_high, (unsigned char *) w2, _w2_high, (unsigned char *) w3, _w3_high, (unsigned char *) w4, _w4_high); + } } void _M2_mcQuiet_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[]) --- a/src/gcc/gm2/mc-boot/GmcSearch.c +++ b/src/gcc/gm2/mc-boot/GmcSearch.c @@ -209,7 +209,9 @@ static void Init (void) void mcSearch_initSearchPath (DynamicStrings_String path) { if (InitialPath != NULL) - InitialPath = DynamicStrings_KillString (InitialPath); + { + InitialPath = DynamicStrings_KillString (InitialPath); + } InitialPath = path; } @@ -227,7 +229,9 @@ void mcSearch_prependSearchPath (DynamicStrings_String path) UserPath = DynamicStrings_Dup (path); } else - UserPath = DynamicStrings_ConCat (DynamicStrings_ConCatChar (UserPath, ':'), path); + { + UserPath = DynamicStrings_ConCat (DynamicStrings_ConCatChar (UserPath, ':'), path); + } DSdbExit (UserPath); } @@ -254,17 +258,27 @@ unsigned int mcSearch_findSourceFile (DynamicStrings_String FileName, DynamicStr DynamicStrings_String newpath; if (DynamicStrings_EqualArray (UserPath, (char *) "", 0)) - if (DynamicStrings_EqualArray (InitialPath, (char *) "", 0)) - completeSearchPath = DynamicStrings_InitString ((char *) ".", 1); - else - completeSearchPath = DynamicStrings_Dup (InitialPath); + { + if (DynamicStrings_EqualArray (InitialPath, (char *) "", 0)) + { + completeSearchPath = DynamicStrings_InitString ((char *) ".", 1); + } + else + { + completeSearchPath = DynamicStrings_Dup (InitialPath); + } + } else - completeSearchPath = DynamicStrings_ConCat (DynamicStrings_ConCatChar (DynamicStrings_Dup (UserPath), ':'), InitialPath); + { + completeSearchPath = DynamicStrings_ConCat (DynamicStrings_ConCatChar (DynamicStrings_Dup (UserPath), ':'), InitialPath); + } start = 0; end = DynamicStrings_Index (completeSearchPath, ':', (unsigned int ) (start)); do { if (end == -1) - end = 0; + { + end = 0; + } newpath = DynamicStrings_Slice (completeSearchPath, start, end); if (DynamicStrings_EqualArray (newpath, (char *) ".", 1)) { @@ -272,7 +286,9 @@ unsigned int mcSearch_findSourceFile (DynamicStrings_String FileName, DynamicStr newpath = DynamicStrings_Dup (FileName); } else - newpath = DynamicStrings_ConCat (DynamicStrings_ConCatChar (newpath, Directory), FileName); + { + newpath = DynamicStrings_ConCat (DynamicStrings_ConCatChar (newpath, Directory), FileName); + } if (SFIO_Exists (newpath)) { (*fullPath) = newpath; @@ -308,7 +324,9 @@ unsigned int mcSearch_findSourceDefFile (DynamicStrings_String stem, DynamicStri { f = mcFileName_calculateFileName (stem, Def); if (mcSearch_findSourceFile (f, fullPath)) - return TRUE; + { + return TRUE; + } f = DynamicStrings_KillString (f); } /* and try the GNU Modula-2 default extension */ @@ -332,7 +350,9 @@ unsigned int mcSearch_findSourceModFile (DynamicStrings_String stem, DynamicStri { f = mcFileName_calculateFileName (stem, Mod); if (mcSearch_findSourceFile (f, fullPath)) - return TRUE; + { + return TRUE; + } f = DynamicStrings_KillString (f); } /* and try the GNU Modula-2 default extension */ --- a/src/gcc/gm2/mc-boot/GmcStack.c +++ b/src/gcc/gm2/mc-boot/GmcStack.c @@ -122,9 +122,13 @@ void mcStack_kill (mcStack_stack *s) void * mcStack_push (mcStack_stack s, void * a) { if (s->count == 0) - Indexing_PutIndice (s->list, Indexing_LowIndice (s->list), a); + { + Indexing_PutIndice (s->list, Indexing_LowIndice (s->list), a); + } else - Indexing_PutIndice (s->list, (Indexing_HighIndice (s->list))+1, a); + { + Indexing_PutIndice (s->list, (Indexing_HighIndice (s->list))+1, a); + } s->count += 1; return a; } @@ -139,7 +143,9 @@ void * mcStack_pop (mcStack_stack s) void * a; if (s->count == 0) - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } else { s->count -= 1; @@ -183,9 +189,13 @@ unsigned int mcStack_depth (mcStack_stack s) void * mcStack_access (mcStack_stack s, unsigned int i) { if ((i > s->count) || (i == 0)) - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } else - return Indexing_GetIndice (s->list, i); + { + return Indexing_GetIndice (s->list, i); + } } void _M2_mcStack_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[]) --- a/src/gcc/gm2/mc-boot/GmcStream.c +++ b/src/gcc/gm2/mc-boot/GmcStream.c @@ -229,7 +229,9 @@ void mcStream_setDest (FIO_File f) FIO_File mcStream_combine (void) { if (! seenDest) - M2RTS_HALT (-1); + { + M2RTS_HALT (-1); + } Indexing_ForeachIndiceInIndexDo (frag, (Indexing_IndexProcedure) {(Indexing_IndexProcedure_t) copy}); removeFiles (); return destFile; --- a/src/gcc/gm2/mc-boot/Gmcp1.c +++ b/src/gcc/gm2/mc-boot/Gmcp1.c @@ -2391,9 +2391,13 @@ static DynamicStrings_String DescribeStop (SetOfStop0 stopset0, SetOfStop1 stops message = DynamicStrings_KillString (message); } else if (n == 1) - str = DynamicStrings_ConCat (message, DynamicStrings_Mark (DynamicStrings_InitString ((char *) " missing ", 9))); + { + /* avoid dangling else. */ + str = DynamicStrings_ConCat (message, DynamicStrings_Mark (DynamicStrings_InitString ((char *) " missing ", 9))); + } else { + /* avoid dangling else. */ str = DynamicStrings_ConCat (DynamicStrings_InitString ((char *) " expecting one of", 17), message); message = DynamicStrings_KillString (message); } @@ -2789,17 +2793,23 @@ static void SyntaxError (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st { DescribeError (stopset0, stopset1, stopset2); if (Debugging) - mcPrintf_printf0 ((char *) "\\nskipping token *** ", 21); + { + mcPrintf_printf0 ((char *) "\\nskipping token *** ", 21); + } /* yes the ORD(currenttoken) looks ugly, but it is *much* safer than using currenttoken= 32) && (((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || ((((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) - mcLexBuf_getToken (); + while (! (((( ((unsigned int) (mcLexBuf_currenttoken)) < 32) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & (stopset0)) != 0))) || ((( ((unsigned int) (mcLexBuf_currenttoken)) >= 32) && ( ((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || (( ((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) + { + mcLexBuf_getToken (); + } if (Debugging) - mcPrintf_printf0 ((char *) " ***\\n", 6); + { + mcPrintf_printf0 ((char *) " ***\\n", 6); + } } @@ -2811,8 +2821,10 @@ static void SyntaxCheck (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st { /* and again (see above re: ORD) */ - if (! ((((((unsigned int) (mcLexBuf_currenttoken)) < 32) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & (stopset0)) != 0))) || (((((unsigned int) (mcLexBuf_currenttoken)) >= 32) && (((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || ((((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) - SyntaxError (stopset0, stopset1, stopset2); + if (! (((( ((unsigned int) (mcLexBuf_currenttoken)) < 32) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & (stopset0)) != 0))) || ((( ((unsigned int) (mcLexBuf_currenttoken)) >= 32) && ( ((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || (( ((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) + { + SyntaxError (stopset0, stopset1, stopset2); + } } @@ -2830,12 +2842,20 @@ static void WarnMissingToken (mcReserved_toktype t) s0 = (SetOfStop0) 0; s1 = (SetOfStop1) 0; s2 = (SetOfStop2) 0; - if (((unsigned int) (t)) < 32) - s0 = (SetOfStop0) ((1 << (t-mcReserved_eoftok))); - else if (((unsigned int) (t)) < 64) - s1 = (SetOfStop1) ((1 << (t-mcReserved_arraytok))); + if ( ((unsigned int) (t)) < 32) + { + s0 = (SetOfStop0) ((1 << (t-mcReserved_eoftok))); + } + else if ( ((unsigned int) (t)) < 64) + { + /* avoid dangling else. */ + s1 = (SetOfStop1) ((1 << (t-mcReserved_arraytok))); + } else - s2 = (SetOfStop2) ((1 << (t-mcReserved_recordtok))); + { + /* avoid dangling else. */ + s2 = (SetOfStop2) ((1 << (t-mcReserved_recordtok))); + } str = DescribeStop (s0, s1, s2); str = DynamicStrings_ConCat (DynamicStrings_InitString ((char *) "syntax error,", 13), DynamicStrings_Mark (str)); mcError_errorStringAt (str, mcLexBuf_getTokenNo ()); @@ -2852,7 +2872,9 @@ static void MissingToken (mcReserved_toktype t) if ((((t != mcReserved_identtok) && (t != mcReserved_integertok)) && (t != mcReserved_realtok)) && (t != mcReserved_stringtok)) { if (Debugging) - mcPrintf_printf0 ((char *) "inserting token\\n", 17); + { + mcPrintf_printf0 ((char *) "inserting token\\n", 17); + } mcLexBuf_insertToken (t); } } @@ -2864,14 +2886,16 @@ static void MissingToken (mcReserved_toktype t) static unsigned int CheckAndInsert (mcReserved_toktype t, SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { - if ((((((unsigned int) (t)) < 32) && ((((1 << (t-mcReserved_eoftok)) & (stopset0)) != 0))) || (((((unsigned int) (t)) >= 32) && (((unsigned int) (t)) < 64)) && ((((1 << (t-mcReserved_arraytok)) & (stopset1)) != 0)))) || ((((unsigned int) (t)) >= 64) && ((((1 << (t-mcReserved_recordtok)) & (stopset2)) != 0)))) + if (((( ((unsigned int) (t)) < 32) && ((((1 << (t-mcReserved_eoftok)) & (stopset0)) != 0))) || ((( ((unsigned int) (t)) >= 32) && ( ((unsigned int) (t)) < 64)) && ((((1 << (t-mcReserved_arraytok)) & (stopset1)) != 0)))) || (( ((unsigned int) (t)) >= 64) && ((((1 << (t-mcReserved_recordtok)) & (stopset2)) != 0)))) { WarnMissingToken (t); mcLexBuf_insertTokenAndRewind (t); return TRUE; } else - return FALSE; + { + return FALSE; + } } @@ -2881,10 +2905,14 @@ static unsigned int CheckAndInsert (mcReserved_toktype t, SetOfStop0 stopset0, S static unsigned int InStopSet (mcReserved_toktype t, SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { - if ((((((unsigned int) (t)) < 32) && ((((1 << (t-mcReserved_eoftok)) & (stopset0)) != 0))) || (((((unsigned int) (t)) >= 32) && (((unsigned int) (t)) < 64)) && ((((1 << (t-mcReserved_arraytok)) & (stopset1)) != 0)))) || ((((unsigned int) (t)) >= 64) && ((((1 << (t-mcReserved_recordtok)) & (stopset2)) != 0)))) - return TRUE; + if (((( ((unsigned int) (t)) < 32) && ((((1 << (t-mcReserved_eoftok)) & (stopset0)) != 0))) || ((( ((unsigned int) (t)) >= 32) && ( ((unsigned int) (t)) < 64)) && ((((1 << (t-mcReserved_arraytok)) & (stopset1)) != 0)))) || (( ((unsigned int) (t)) >= 64) && ((((1 << (t-mcReserved_recordtok)) & (stopset2)) != 0)))) + { + return TRUE; + } else - return FALSE; + { + return FALSE; + } } @@ -2900,11 +2928,13 @@ static void PeepToken (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop { /* and again (see above re: ORD) */ - if ((! ((((((unsigned int) (mcLexBuf_currenttoken)) < 32) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & (stopset0)) != 0))) || (((((unsigned int) (mcLexBuf_currenttoken)) >= 32) && (((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || ((((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) && (! (InStopSet ((mcReserved_toktype) mcReserved_identtok, stopset0, stopset1, stopset2)))) - /* SyntaxCheck would fail since currentoken is not part of the stopset + if ((! (((( ((unsigned int) (mcLexBuf_currenttoken)) < 32) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & (stopset0)) != 0))) || ((( ((unsigned int) (mcLexBuf_currenttoken)) >= 32) && ( ((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || (( ((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) && (! (InStopSet ((mcReserved_toktype) mcReserved_identtok, stopset0, stopset1, stopset2)))) + { + /* SyntaxCheck would fail since currentoken is not part of the stopset we check to see whether any of currenttoken might be a commonly omitted token */ - if ((((((((CheckAndInsert ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2)) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rsbratok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rcbratok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_periodtok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_oftok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_commatok, stopset0, stopset1, stopset2))) - {} /* empty. */ + if ((((((((CheckAndInsert ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2)) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rsbratok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rcbratok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_periodtok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_oftok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_commatok, stopset0, stopset1, stopset2))) + {} /* empty. */ + } } @@ -2919,10 +2949,14 @@ static void Expect (mcReserved_toktype t, SetOfStop0 stopset0, SetOfStop1 stopse /* avoid dangling else. */ mcLexBuf_getToken (); if (Pass1) - PeepToken (stopset0, stopset1, stopset2); + { + PeepToken (stopset0, stopset1, stopset2); + } } else - MissingToken (t); + { + MissingToken (t); + } SyntaxCheck (stopset0, stopset1, stopset2); } @@ -3008,11 +3042,19 @@ static void registerImport (nameKey_Name ident, unsigned int scoped) static void FileUnit (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_definitiontok) - DefinitionModule (stopset0, stopset1, stopset2); + { + DefinitionModule (stopset0, stopset1, stopset2); + } else if (((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_implementationtok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))))) != 0))) - ImplementationOrProgramModule (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ImplementationOrProgramModule (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: IMPLEMENTATION MODULE DEFINITION", 50); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: IMPLEMENTATION MODULE DEFINITION", 50); + } } @@ -3040,10 +3082,14 @@ static void ProgramModule (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 curmodule = decl_lookupModule (curident); decl_enterScope (curmodule); if (mcLexBuf_currenttoken == mcReserved_lsbratok) - Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + { + Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); while (((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok))))) != 0))) - Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + { + Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + } /* while */ Block (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok))), stopset1, stopset2); @@ -3081,10 +3127,14 @@ static void ImplementationModule (SetOfStop0 stopset0, SetOfStop1 stopset1, SetO decl_enterScope (decl_lookupDef (curident)); decl_enterScope (curmodule); if (mcLexBuf_currenttoken == mcReserved_lsbratok) - Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + { + Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); while (((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok))))) != 0))) - Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + { + Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + } /* while */ Block (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok))), stopset1, stopset2); @@ -3107,11 +3157,19 @@ static void ImplementationModule (SetOfStop0 stopset0, SetOfStop1 stopset1, SetO static void ImplementationOrProgramModule (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_implementationtok) - ImplementationModule (stopset0, stopset1, stopset2); + { + ImplementationModule (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_moduletok) - ProgramModule (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ProgramModule (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: MODULE IMPLEMENTATION", 39); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: MODULE IMPLEMENTATION", 39); + } } @@ -3126,11 +3184,19 @@ static void ImplementationOrProgramModule (SetOfStop0 stopset0, SetOfStop1 stops static void Number (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_integertok) - Integer (stopset0, stopset1, stopset2); + { + Integer (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_realtok) - Real (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Real (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: real number integer number", 44); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: real number integer number", 44); + } } @@ -3185,23 +3251,49 @@ static void ConstExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop static void Relation (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_equaltok) - Expect ((mcReserved_toktype) mcReserved_equaltok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_equaltok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_hashtok) - Expect ((mcReserved_toktype) mcReserved_hashtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_hashtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lessgreatertok) - Expect ((mcReserved_toktype) mcReserved_lessgreatertok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_lessgreatertok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lesstok) - Expect ((mcReserved_toktype) mcReserved_lesstok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_lesstok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lessequaltok) - Expect ((mcReserved_toktype) mcReserved_lessequaltok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_lessequaltok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_greatertok) - Expect ((mcReserved_toktype) mcReserved_greatertok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_greatertok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_greaterequaltok) - Expect ((mcReserved_toktype) mcReserved_greaterequaltok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_greaterequaltok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_intok) - Expect ((mcReserved_toktype) mcReserved_intok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_intok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: IN >= > <= < <> # =", 37); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: IN >= > <= < <> # =", 37); + } } @@ -3243,13 +3335,20 @@ static void UnaryOrConstTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto } else if (mcLexBuf_currenttoken == mcReserved_minustok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_minustok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)))); ConstTerm (stopset0, stopset1, stopset2); } else if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok))))) != 0)))) - ConstTerm (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstTerm (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: NOT ( integer number real number __ATTRIBUTE__ identifier { string - +", 88); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: NOT ( integer number real number __ATTRIBUTE__ identifier { string - +", 88); + } } @@ -3264,13 +3363,24 @@ static void UnaryOrConstTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto static void AddOperator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_plustok) - Expect ((mcReserved_toktype) mcReserved_plustok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_plustok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_minustok) - Expect ((mcReserved_toktype) mcReserved_minustok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_minustok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_ortok) - Expect ((mcReserved_toktype) mcReserved_ortok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_ortok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: OR - +", 24); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: OR - +", 24); + } } @@ -3306,21 +3416,44 @@ static void ConstTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop static void MulOperator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_timestok) - Expect ((mcReserved_toktype) mcReserved_timestok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_timestok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_dividetok) - Expect ((mcReserved_toktype) mcReserved_dividetok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_dividetok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_divtok) - Expect ((mcReserved_toktype) mcReserved_divtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_divtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_modtok) - Expect ((mcReserved_toktype) mcReserved_modtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_modtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_remtok) - Expect ((mcReserved_toktype) mcReserved_remtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_remtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_andtok) - Expect ((mcReserved_toktype) mcReserved_andtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_andtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_ambersandtok) - Expect ((mcReserved_toktype) mcReserved_ambersandtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_ambersandtok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: & AND REM MOD DIV / *", 39); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: & AND REM MOD DIV / *", 39); + } } @@ -3337,26 +3470,42 @@ static void MulOperator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st static void ConstFactor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok))))) != 0))) - Number (stopset0, stopset1, stopset2); + { + Number (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_stringtok) - ConstString (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstString (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken == mcReserved_lcbratok) || (mcLexBuf_currenttoken == mcReserved_identtok)) - ConstSetOrQualidentOrFunction (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstSetOrQualidentOrFunction (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lparatok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)))); ConstExpression (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_nottok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_nottok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)))); ConstFactor (stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_attributetok) - ConstAttribute (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstAttribute (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: __ATTRIBUTE__ NOT ( identifier { string integer number real number", 84); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: __ATTRIBUTE__ NOT ( identifier { string integer number real number", 84); + } } @@ -3444,7 +3593,9 @@ static void Constructor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st { Expect ((mcReserved_toktype) mcReserved_lcbratok, stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)))); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok))))) != 0)))) - ArraySetRecordValue (stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok))), stopset1, stopset2); + { + ArraySetRecordValue (stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rcbratok, stopset0, stopset1, stopset2); } @@ -3470,18 +3621,32 @@ static void ConstSetOrQualidentOrFunction (SetOfStop0 stopset0, SetOfStop1 stops /* avoid gcc warning by using compound statement even if not strictly necessary. */ /* seen optional [ | ] expression */ if (mcLexBuf_currenttoken == mcReserved_lcbratok) - Constructor (stopset0, stopset1, stopset2); + { + Constructor (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lparatok) - ConstActualParameters (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstActualParameters (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: ( {", 21); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ( {", 21); + } } /* end of optional [ | ] expression */ } else if (mcLexBuf_currenttoken == mcReserved_lcbratok) - Constructor (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Constructor (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: { identifier", 30); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: { identifier", 30); + } } @@ -3532,9 +3697,12 @@ static void ConstAttribute (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void ConstAttributeExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_identtok) - Ident (stopset0, stopset1, stopset2); + { + Ident (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lesstok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_lesstok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Qualident (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_commatok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); @@ -3542,7 +3710,10 @@ static void ConstAttributeExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, Expect ((mcReserved_toktype) mcReserved_greatertok, stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: < identifier", 30); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: < identifier", 30); + } } @@ -3592,7 +3763,9 @@ static void ByteAlignment (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void OptAlignmentExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_lparatok) - AlignmentExpression (stopset0, stopset1, stopset2); + { + AlignmentExpression (stopset0, stopset1, stopset2); + } } @@ -3623,7 +3796,9 @@ static void AlignmentExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf static void Alignment (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_ldirectivetok) - ByteAlignment (stopset0, stopset1, stopset2); + { + ByteAlignment (stopset0, stopset1, stopset2); + } } @@ -3663,19 +3838,39 @@ static void TypeDeclaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop static void Type (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_identtok)) - SimpleType (stopset0, stopset1, stopset2); + { + SimpleType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_arraytok) - ArrayType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ArrayType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_recordtok) - RecordType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + RecordType (stopset0, stopset1, stopset2); + } else if ((((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_packedsettok-mcReserved_arraytok)) | (1 << (mcReserved_oftok-mcReserved_arraytok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_settok)) - SetType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SetType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_pointertok) - PointerType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + PointerType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_proceduretok) - ProcedureType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ProcedureType (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: PROCEDURE POINTER SET PACKEDSET OF RECORD ARRAY identifier ( [", 80); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: PROCEDURE POINTER SET PACKEDSET OF RECORD ARRAY identifier ( [", 80); + } } @@ -3695,14 +3890,25 @@ static void SimpleType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto /* avoid dangling else. */ Qualident (stopset0|(SetOfStop0) ((1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_lsbratok) - SubrangeType (stopset0, stopset1, stopset2); + { + SubrangeType (stopset0, stopset1, stopset2); + } } else if (mcLexBuf_currenttoken == mcReserved_lparatok) - Enumeration (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Enumeration (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lsbratok) - SubrangeType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SubrangeType (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: [ ( identifier", 32); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: [ ( identifier", 32); + } } @@ -3796,7 +4002,9 @@ static void RecordType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto { Expect ((mcReserved_toktype) mcReserved_recordtok, stopset0|(SetOfStop0) ((1 << (mcReserved_ldirectivetok-mcReserved_eoftok)) | (1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_casetok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); if (mcLexBuf_currenttoken == mcReserved_ldirectivetok) - DefaultRecordAttributes (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_casetok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + { + DefaultRecordAttributes (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_casetok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + } FieldListSequence (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok))), stopset2); Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2); } @@ -3925,7 +4133,9 @@ static void FieldListSequence (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt static void FieldListStatement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken == mcReserved_casetok) || (mcLexBuf_currenttoken == mcReserved_identtok)) - FieldList (stopset0, stopset1, stopset2); + { + FieldList (stopset0, stopset1, stopset2); + } } @@ -3950,6 +4160,7 @@ static void FieldList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop } else if (mcLexBuf_currenttoken == mcReserved_casetok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_casetok, stopset0|(SetOfStop0) ((1 << (mcReserved_colontok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); CaseTag (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2); Expect ((mcReserved_toktype) mcReserved_oftok, stopset0|(SetOfStop0) ((1 << (mcReserved_bartok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_elsetok-mcReserved_arraytok)) | (1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)))); @@ -3968,7 +4179,10 @@ static void FieldList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: CASE identifier", 33); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: CASE identifier", 33); + } } @@ -3983,7 +4197,9 @@ static void FieldList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop static void TagIdent (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_identtok) - Ident (stopset0, stopset1, stopset2); + { + Ident (stopset0, stopset1, stopset2); + } } @@ -4096,23 +4312,49 @@ static void SilentConstExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, Set static void SilentRelation (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_equaltok) - Expect ((mcReserved_toktype) mcReserved_equaltok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_equaltok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_hashtok) - Expect ((mcReserved_toktype) mcReserved_hashtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_hashtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lessgreatertok) - Expect ((mcReserved_toktype) mcReserved_lessgreatertok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_lessgreatertok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lesstok) - Expect ((mcReserved_toktype) mcReserved_lesstok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_lesstok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lessequaltok) - Expect ((mcReserved_toktype) mcReserved_lessequaltok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_lessequaltok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_greatertok) - Expect ((mcReserved_toktype) mcReserved_greatertok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_greatertok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_greaterequaltok) - Expect ((mcReserved_toktype) mcReserved_greaterequaltok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_greaterequaltok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_intok) - Expect ((mcReserved_toktype) mcReserved_intok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_intok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: IN >= > <= < <> # =", 37); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: IN >= > <= < <> # =", 37); + } } @@ -4156,13 +4398,20 @@ static void SilentUnaryOrConstTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, Se } else if (mcLexBuf_currenttoken == mcReserved_minustok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_minustok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)))); SilentConstTerm (stopset0, stopset1, stopset2); } else if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok))))) != 0)))) - SilentConstTerm (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SilentConstTerm (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: NOT ( integer number real number __ATTRIBUTE__ { identifier string - +", 88); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: NOT ( integer number real number __ATTRIBUTE__ { identifier string - +", 88); + } } @@ -4177,13 +4426,24 @@ static void SilentUnaryOrConstTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, Se static void SilentAddOperator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_plustok) - Expect ((mcReserved_toktype) mcReserved_plustok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_plustok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_minustok) - Expect ((mcReserved_toktype) mcReserved_minustok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_minustok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_ortok) - Expect ((mcReserved_toktype) mcReserved_ortok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_ortok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: OR - +", 24); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: OR - +", 24); + } } @@ -4219,21 +4479,44 @@ static void SilentConstTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop static void SilentMulOperator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_timestok) - Expect ((mcReserved_toktype) mcReserved_timestok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_timestok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_dividetok) - Expect ((mcReserved_toktype) mcReserved_dividetok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_dividetok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_divtok) - Expect ((mcReserved_toktype) mcReserved_divtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_divtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_modtok) - Expect ((mcReserved_toktype) mcReserved_modtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_modtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_remtok) - Expect ((mcReserved_toktype) mcReserved_remtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_remtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_andtok) - Expect ((mcReserved_toktype) mcReserved_andtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_andtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_ambersandtok) - Expect ((mcReserved_toktype) mcReserved_ambersandtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_ambersandtok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: & AND REM MOD DIV / *", 39); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: & AND REM MOD DIV / *", 39); + } } @@ -4252,26 +4535,42 @@ static void SilentMulOperator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt static void SilentConstFactor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok))))) != 0))) - Number (stopset0, stopset1, stopset2); + { + Number (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_stringtok) - SilentConstString (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SilentConstString (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken == mcReserved_lcbratok) || (mcLexBuf_currenttoken == mcReserved_identtok)) - SilentConstSetOrQualidentOrFunction (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SilentConstSetOrQualidentOrFunction (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lparatok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)))); SilentConstExpression (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_nottok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_nottok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)))); SilentConstFactor (stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_attributetok) - SilentConstAttribute (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SilentConstAttribute (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: __ATTRIBUTE__ NOT ( { identifier string integer number real number", 84); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: __ATTRIBUTE__ NOT ( { identifier string integer number real number", 84); + } } @@ -4323,17 +4622,23 @@ static void SilentConstAttribute (SetOfStop0 stopset0, SetOfStop1 stopset1, SetO static void SilentConstAttributeExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_identtok) - Ident (stopset0, stopset1, stopset2); + { + Ident (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lesstok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_lesstok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_commatok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)))); SilentConstString (stopset0|(SetOfStop0) ((1 << (mcReserved_greatertok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_greatertok, stopset0, stopset1, stopset2); } - else - ErrorArray ((char *) "expecting one of: < identifier", 30); + else + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: < identifier", 30); + } } @@ -4407,7 +4712,9 @@ static void SilentConstructor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt { Expect ((mcReserved_toktype) mcReserved_lcbratok, stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)))); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok))))) != 0)))) - SilentArraySetRecordValue (stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok))), stopset1, stopset2); + { + SilentArraySetRecordValue (stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rcbratok, stopset0, stopset1, stopset2); } @@ -4425,7 +4732,9 @@ static void SilentConstructor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt static void SilentConstSetOrQualidentOrFunction (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_lcbratok) - SilentConstructor (stopset0, stopset1, stopset2); + { + SilentConstructor (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_identtok) { /* avoid dangling else. */ @@ -4435,16 +4744,27 @@ static void SilentConstSetOrQualidentOrFunction (SetOfStop0 stopset0, SetOfStop1 /* avoid gcc warning by using compound statement even if not strictly necessary. */ /* seen optional [ | ] expression */ if (mcLexBuf_currenttoken == mcReserved_lcbratok) - SilentConstructor (stopset0, stopset1, stopset2); + { + SilentConstructor (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lparatok) - SilentActualParameters (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SilentActualParameters (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: ( {", 21); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ( {", 21); + } } /* end of optional [ | ] expression */ } else - ErrorArray ((char *) "expecting one of: identifier {", 30); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: identifier {", 30); + } } @@ -4479,7 +4799,9 @@ static void SilentActualParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, Se { Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)))); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok))))) != 0)))) - SilentExpList (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + { + SilentExpList (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); } @@ -4515,11 +4837,19 @@ static void SilentExpList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void SetType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_settok) - Expect ((mcReserved_toktype) mcReserved_settok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2); + { + Expect ((mcReserved_toktype) mcReserved_settok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_packedsettok) - Expect ((mcReserved_toktype) mcReserved_packedsettok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_packedsettok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2); + } else - ErrorArray ((char *) "expecting one of: PACKEDSET SET", 31); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: PACKEDSET SET", 31); + } Expect ((mcReserved_toktype) mcReserved_oftok, stopset0|(SetOfStop0) ((1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); SimpleType (stopset0, stopset1, stopset2); } @@ -4553,7 +4883,9 @@ static void ProcedureType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 { Expect ((mcReserved_toktype) mcReserved_proceduretok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_lparatok) - FormalTypeList (stopset0, stopset1, stopset2); + { + FormalTypeList (stopset0, stopset1, stopset2); + } } @@ -4576,12 +4908,16 @@ static void FormalTypeList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 } else if ((mcLexBuf_currenttoken == mcReserved_arraytok) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_periodperiodperiodtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) { + /* avoid dangling else. */ ProcedureParameters (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_colontok-mcReserved_eoftok))), stopset1, stopset2); FormalReturn (stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: VAR ... ARRAY identifier )", 44); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: VAR ... ARRAY identifier )", 44); + } } @@ -4620,9 +4956,15 @@ static void OptReturnType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 Expect ((mcReserved_toktype) mcReserved_rsbratok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_identtok) - Qualident (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Qualident (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: identifier [", 30); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: identifier [", 30); + } } @@ -4658,16 +5000,25 @@ static void ProcedureParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf static void ProcedureParameter (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_periodperiodperiodtok) - Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_vartok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_vartok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_arraytok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); FormalType (stopset0, stopset1, stopset2); } else if ((mcLexBuf_currenttoken == mcReserved_arraytok) || (mcLexBuf_currenttoken == mcReserved_identtok)) - FormalType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + FormalType (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: ARRAY identifier VAR ...", 42); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ARRAY identifier VAR ...", 42); + } } @@ -4747,7 +5098,9 @@ static void Designator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto { Qualident (stopset0|(SetOfStop0) ((1 << (mcReserved_uparrowtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_periodtok-mcReserved_eoftok))), stopset1, stopset2); while ((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))))) != 0))) - SubDesignator (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))), stopset1, stopset2); + { + SubDesignator (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))), stopset1, stopset2); + } /* while */ } @@ -4770,14 +5123,21 @@ static void SubDesignator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 } else if (mcLexBuf_currenttoken == mcReserved_lsbratok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_lsbratok, stopset0|(SetOfStop0) ((1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); ArrayExpList (stopset0|(SetOfStop0) ((1 << (mcReserved_rsbratok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rsbratok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_uparrowtok) - Expect ((mcReserved_toktype) mcReserved_uparrowtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_uparrowtok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: ^ [ .", 23); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ^ [ .", 23); + } } @@ -4877,13 +5237,20 @@ static void UnaryOrTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st } else if (mcLexBuf_currenttoken == mcReserved_minustok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_minustok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); Term (stopset0, stopset1, stopset2); } else if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - Term (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Term (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: NOT ( string integer number real number identifier { - +", 74); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: NOT ( string integer number real number identifier { - +", 74); + } } @@ -4919,29 +5286,50 @@ static void Term (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) static void Factor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok))))) != 0))) - Number (stopset0, stopset1, stopset2); + { + Number (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_stringtok) - string (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + string (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken == mcReserved_lcbratok) || (mcLexBuf_currenttoken == mcReserved_identtok)) - SetOrDesignatorOrFunction (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SetOrDesignatorOrFunction (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lparatok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); Expression (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_nottok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_nottok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - Factor (stopset0, stopset1, stopset2); + { + Factor (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_attributetok) - ConstAttribute (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstAttribute (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: __ATTRIBUTE__ real number integer number string ( NOT { identifier", 84); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: __ATTRIBUTE__ real number integer number string ( NOT { identifier", 84); + } } else - ErrorArray ((char *) "expecting one of: NOT ( identifier { string integer number real number", 70); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: NOT ( identifier { string integer number real number", 70); + } } @@ -4966,23 +5354,36 @@ static void SetOrDesignatorOrFunction (SetOfStop0 stopset0, SetOfStop1 stopset1, /* avoid gcc warning by using compound statement even if not strictly necessary. */ /* seen optional [ | ] expression */ if (mcLexBuf_currenttoken == mcReserved_lcbratok) - Constructor (stopset0, stopset1, stopset2); + { + Constructor (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_periodtok-mcReserved_eoftok))))) != 0))) { /* avoid dangling else. */ SimpleDes (stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_lparatok) - ActualParameters (stopset0, stopset1, stopset2); + { + ActualParameters (stopset0, stopset1, stopset2); + } } else - ErrorArray ((char *) "expecting one of: ( ^ [ . {", 27); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ( ^ [ . {", 27); + } } /* end of optional [ | ] expression */ } else if (mcLexBuf_currenttoken == mcReserved_lcbratok) - Constructor (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Constructor (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: { identifier", 30); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: { identifier", 30); + } } @@ -4997,7 +5398,9 @@ static void SetOrDesignatorOrFunction (SetOfStop0 stopset0, SetOfStop1 stopset1, static void SimpleDes (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { while ((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))))) != 0))) - SubDesignator (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))), stopset1, stopset2); + { + SubDesignator (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))), stopset1, stopset2); + } /* while */ } @@ -5014,7 +5417,9 @@ static void ActualParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto { Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - ExpList (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + { + ExpList (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); } @@ -5045,7 +5450,9 @@ static void ReturnStatement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop { Expect ((mcReserved_toktype) mcReserved_returntok, stopset0|(SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - Expression (stopset0, stopset1, stopset2); + { + Expression (stopset0, stopset1, stopset2); + } } @@ -5070,31 +5477,69 @@ static void Statement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop /* avoid gcc warning by using compound statement even if not strictly necessary. */ /* seen optional [ | ] expression */ if (mcLexBuf_currenttoken == mcReserved_identtok) - AssignmentOrProcedureCall (stopset0, stopset1, stopset2); + { + AssignmentOrProcedureCall (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_iftok) - IfStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + IfStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_casetok) - CaseStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + CaseStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_whiletok) - WhileStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + WhileStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_repeattok) - RepeatStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + RepeatStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_looptok) - LoopStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + LoopStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_fortok) - ForStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ForStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_withtok) - WithStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + WithStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_asmtok) - AsmStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + AsmStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_exittok) - ExitStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ExitStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_returntok) - ReturnStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ReturnStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_retrytok) - RetryStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + RetryStatement (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: RETRY RETURN EXIT ASM WITH FOR LOOP REPEAT WHILE CASE IF identifier", 85); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: RETRY RETURN EXIT ASM WITH FOR LOOP REPEAT WHILE CASE IF identifier", 85); + } } /* end of optional [ | ] expression */ } @@ -5135,7 +5580,10 @@ static void AssignmentOrProcedureCall (SetOfStop0 stopset0, SetOfStop1 stopset1, Expression (stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_lparatok) - ActualParameters (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ActualParameters (stopset0, stopset1, stopset2); + } /* epsilon */ } @@ -5229,15 +5677,21 @@ static void CaseStatement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void CaseEndStatement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_endtok) - Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_elsetok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_elsetok, stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_exittok-mcReserved_arraytok)) | (1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_iftok-mcReserved_arraytok)) | (1 << (mcReserved_casetok-mcReserved_arraytok)) | (1 << (mcReserved_looptok-mcReserved_arraytok)) | (1 << (mcReserved_fortok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_returntok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_whiletok-mcReserved_recordtok)) | (1 << (mcReserved_repeattok-mcReserved_recordtok)) | (1 << (mcReserved_withtok-mcReserved_recordtok)) | (1 << (mcReserved_asmtok-mcReserved_recordtok)) | (1 << (mcReserved_retrytok-mcReserved_recordtok)))); StatementSequence (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok))), stopset2); Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: ELSE END", 26); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ELSE END", 26); + } } @@ -5461,7 +5915,9 @@ static void ProcedureIdent (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 Ident (stopset0, stopset1, stopset2); curproc = decl_lookupSym (curident); if (curproc == NULL) - curproc = decl_makeProcedure (curident); + { + curproc = decl_makeProcedure (curident); + } mcComment_setProcedureComment (mcLexBuf_lastcomment, curident); decl_putCommentModProcedure (curproc); } @@ -5494,9 +5950,15 @@ static void DefineBuiltinProcedure (SetOfStop0 stopset0, SetOfStop1 stopset1, Se Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_inlinetok) - Expect ((mcReserved_toktype) mcReserved_inlinetok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_inlinetok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: __INLINE__ __ATTRIBUTE__", 42); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: __INLINE__ __ATTRIBUTE__", 42); + } } /* end of optional [ | ] expression */ } @@ -5521,7 +5983,9 @@ static void ProcedureHeading (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto ProcedureIdent (stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); decl_enterScope (curproc); if (mcLexBuf_currenttoken == mcReserved_lparatok) - FormalParameters (stopset0, stopset1, stopset2); + { + FormalParameters (stopset0, stopset1, stopset2); + } } @@ -5540,11 +6004,19 @@ static void Builtin (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopse /* avoid gcc warning by using compound statement even if not strictly necessary. */ /* seen optional [ | ] expression */ if (mcLexBuf_currenttoken == mcReserved_builtintok) - Expect ((mcReserved_toktype) mcReserved_builtintok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_builtintok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_inlinetok) - Expect ((mcReserved_toktype) mcReserved_inlinetok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_inlinetok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: __INLINE__ __BUILTIN__", 40); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: __INLINE__ __BUILTIN__", 40); + } } /* end of optional [ | ] expression */ } @@ -5565,7 +6037,9 @@ static void DefProcedureHeading (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf Builtin (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); DefProcedureIdent (stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_lparatok) - DefFormalParameters (stopset0, stopset1, stopset2); + { + DefFormalParameters (stopset0, stopset1, stopset2); + } } @@ -5583,7 +6057,9 @@ static void DefProcedureHeading (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf static void ProcedureBlock (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { while ((((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))))) != 0))) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok))))) != 0)))) - Declaration (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + { + Declaration (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + } /* while */ if (mcLexBuf_currenttoken == mcReserved_begintok) { @@ -5606,7 +6082,9 @@ static void ProcedureBlock (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void Block (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { while ((((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))))) != 0))) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok))))) != 0)))) - Declaration (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + { + Declaration (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + } /* while */ InitialBlock (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok))), stopset2); FinalBlock (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok))), stopset2); @@ -5761,6 +6239,7 @@ static void Declaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st } else if (mcLexBuf_currenttoken == mcReserved_typetok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_typetok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); while (mcLexBuf_currenttoken == mcReserved_identtok) { @@ -5771,6 +6250,7 @@ static void Declaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st } else if (mcLexBuf_currenttoken == mcReserved_vartok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_vartok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); while (mcLexBuf_currenttoken == mcReserved_identtok) { @@ -5781,16 +6261,21 @@ static void Declaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st } else if (mcLexBuf_currenttoken == mcReserved_proceduretok) { + /* avoid dangling else. */ ProcedureDeclaration (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_moduletok) { + /* avoid dangling else. */ ModuleDeclaration (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: MODULE PROCEDURE VAR TYPE CONST", 49); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: MODULE PROCEDURE VAR TYPE CONST", 49); + } } @@ -5806,7 +6291,9 @@ static void DefFormalParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf { Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_periodperiodperiodtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); if ((mcLexBuf_currenttoken == mcReserved_lsbratok) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_periodperiodperiodtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - DefMultiFPSection (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + { + DefMultiFPSection (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_colontok-mcReserved_eoftok))), stopset1, stopset2); FormalReturn (stopset0, stopset1, stopset2); } @@ -5823,7 +6310,9 @@ static void DefFormalParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf static void DefMultiFPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken == mcReserved_lsbratok) || (mcLexBuf_currenttoken == mcReserved_periodperiodperiodtok)) - DefExtendedFP (stopset0, stopset1, stopset2); + { + DefExtendedFP (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok))))) != 0))) { /* avoid dangling else. */ @@ -5835,7 +6324,10 @@ static void DefMultiFPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt } } else - ErrorArray ((char *) "expecting one of: identifier VAR ... [", 38); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: identifier VAR ... [", 38); + } } @@ -5851,7 +6343,9 @@ static void FormalParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto { Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_periodperiodperiodtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); if ((mcLexBuf_currenttoken == mcReserved_lsbratok) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_periodperiodperiodtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - MultiFPSection (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + { + MultiFPSection (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_colontok-mcReserved_eoftok))), stopset1, stopset2); FormalReturn (stopset0, stopset1, stopset2); } @@ -5868,7 +6362,9 @@ static void FormalParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto static void MultiFPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken == mcReserved_lsbratok) || (mcLexBuf_currenttoken == mcReserved_periodperiodperiodtok)) - ExtendedFP (stopset0, stopset1, stopset2); + { + ExtendedFP (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok))))) != 0))) { /* avoid dangling else. */ @@ -5880,7 +6376,10 @@ static void MultiFPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 } } else - ErrorArray ((char *) "expecting one of: identifier VAR ... [", 38); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: identifier VAR ... [", 38); + } } @@ -5895,11 +6394,19 @@ static void MultiFPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void FPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_identtok) - NonVarFPSection (stopset0, stopset1, stopset2); + { + NonVarFPSection (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_vartok) - VarFPSection (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + VarFPSection (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: VAR identifier", 32); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: VAR identifier", 32); + } } @@ -5914,11 +6421,19 @@ static void FPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop static void DefExtendedFP (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_lsbratok) - DefOptArg (stopset0, stopset1, stopset2); + { + DefOptArg (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_periodperiodperiodtok) - Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: ... [", 23); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ... [", 23); + } } @@ -5933,11 +6448,19 @@ static void DefExtendedFP (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void ExtendedFP (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_lsbratok) - OptArg (stopset0, stopset1, stopset2); + { + OptArg (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_periodperiodperiodtok) - Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: ... [", 23); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ... [", 23); + } } @@ -6053,13 +6576,19 @@ static void ModuleDeclaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt Expect ((mcReserved_toktype) mcReserved_moduletok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_lsbratok) - Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + { + Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); while (((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok))))) != 0))) - Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + { + Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + } /* while */ if (mcLexBuf_currenttoken == mcReserved_exporttok) - Export (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + { + Export (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + } Block (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0, stopset1, stopset2); } @@ -6101,13 +6630,20 @@ static void Export (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset } else if (mcLexBuf_currenttoken == mcReserved_unqualifiedtok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_unqualifiedtok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); IdentList (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_identtok) - IdentList (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + { + /* avoid dangling else. */ + IdentList (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: identifier UNQUALIFIED QUALIFIED", 50); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: identifier UNQUALIFIED QUALIFIED", 50); + } Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2); } @@ -6186,11 +6722,19 @@ static void WithoutFromImport (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt static void Import (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_fromtok) - FromImport (stopset0, stopset1, stopset2); + { + FromImport (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_importtok) - WithoutFromImport (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + WithoutFromImport (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: IMPORT FROM", 29); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: IMPORT FROM", 29); + } } @@ -6236,15 +6780,23 @@ static void DefinitionModule (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); curmodule = decl_lookupDef (curident); if (c) - decl_putDefForC (curmodule); + { + decl_putDefForC (curmodule); + } decl_enterScope (curmodule); while (((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok))))) != 0))) - Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + { + Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + } /* while */ if (mcLexBuf_currenttoken == mcReserved_exporttok) - Export (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + { + Export (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + } while ((((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))))) != 0))) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok))))) != 0)))) - Definition (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + { + Definition (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + } /* while */ Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok))), stopset1, stopset2); @@ -6283,13 +6835,17 @@ static void DefTypeDeclaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfS } else if (mcLexBuf_currenttoken == mcReserved_equaltok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_equaltok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_pointertok-mcReserved_arraytok)) | (1 << (mcReserved_packedsettok-mcReserved_arraytok)) | (1 << (mcReserved_oftok-mcReserved_arraytok)) | (1 << (mcReserved_arraytok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_settok-mcReserved_recordtok)) | (1 << (mcReserved_recordtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); Type (stopset0|(SetOfStop0) ((1 << (mcReserved_ldirectivetok-mcReserved_eoftok)) | (1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); Alignment (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); } else - ErrorArray ((char *) "expecting one of: = ;", 21); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: = ;", 21); + } } /* while */ } @@ -6343,13 +6899,17 @@ static void Definition (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto } else if (mcLexBuf_currenttoken == mcReserved_typetok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_typetok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); while (mcLexBuf_currenttoken == mcReserved_identtok) - DefTypeDeclaration (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + { + DefTypeDeclaration (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + } /* while */ } else if (mcLexBuf_currenttoken == mcReserved_vartok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_vartok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); while (mcLexBuf_currenttoken == mcReserved_identtok) { @@ -6360,11 +6920,15 @@ static void Definition (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto } else if (mcLexBuf_currenttoken == mcReserved_proceduretok) { + /* avoid dangling else. */ DefProcedureHeading (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: PROCEDURE VAR TYPE CONST", 42); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: PROCEDURE VAR TYPE CONST", 42); + } } @@ -6380,7 +6944,9 @@ static void AsmStatement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 s { Expect ((mcReserved_toktype) mcReserved_asmtok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_volatiletok-mcReserved_recordtok)))); if (mcLexBuf_currenttoken == mcReserved_volatiletok) - Expect ((mcReserved_toktype) mcReserved_volatiletok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_volatiletok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)))); AsmOperands (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); @@ -6399,7 +6965,9 @@ static void AsmOperands (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st { string (stopset0|(SetOfStop0) ((1 << (mcReserved_colontok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_colontok) - AsmOperandSpec (stopset0, stopset1, stopset2); + { + AsmOperandSpec (stopset0, stopset1, stopset2); + } } @@ -6442,7 +7010,9 @@ static void AsmOperandSpec (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void AsmList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken == mcReserved_lsbratok) || (mcLexBuf_currenttoken == mcReserved_stringtok)) - AsmElement (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); + { + AsmElement (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); + } while (mcLexBuf_currenttoken == mcReserved_commatok) { Expect ((mcReserved_toktype) mcReserved_commatok, stopset0|(SetOfStop0) ((1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)))); @@ -6479,7 +7049,9 @@ static void NamedOperand (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 s static void AsmOperandName (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_lsbratok) - NamedOperand (stopset0, stopset1, stopset2); + { + NamedOperand (stopset0, stopset1, stopset2); + } } @@ -6512,7 +7084,9 @@ static void AsmElement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto static void TrashList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_stringtok) - string (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); + { + string (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); + } while (mcLexBuf_currenttoken == mcReserved_commatok) { Expect ((mcReserved_toktype) mcReserved_commatok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)))); --- a/src/gcc/gm2/mc-boot/Gmcp2.c +++ b/src/gcc/gm2/mc-boot/Gmcp2.c @@ -2506,9 +2506,13 @@ static DynamicStrings_String DescribeStop (SetOfStop0 stopset0, SetOfStop1 stops message = DynamicStrings_KillString (message); } else if (n == 1) - str = DynamicStrings_ConCat (message, DynamicStrings_Mark (DynamicStrings_InitString ((char *) " missing ", 9))); + { + /* avoid dangling else. */ + str = DynamicStrings_ConCat (message, DynamicStrings_Mark (DynamicStrings_InitString ((char *) " missing ", 9))); + } else { + /* avoid dangling else. */ str = DynamicStrings_ConCat (DynamicStrings_InitString ((char *) " expecting one of", 17), message); message = DynamicStrings_KillString (message); } @@ -2904,17 +2908,23 @@ static void SyntaxError (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st { DescribeError (stopset0, stopset1, stopset2); if (Debugging) - mcPrintf_printf0 ((char *) "\\nskipping token *** ", 21); + { + mcPrintf_printf0 ((char *) "\\nskipping token *** ", 21); + } /* yes the ORD(currenttoken) looks ugly, but it is *much* safer than using currenttoken= 32) && (((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || ((((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) - mcLexBuf_getToken (); + while (! (((( ((unsigned int) (mcLexBuf_currenttoken)) < 32) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & (stopset0)) != 0))) || ((( ((unsigned int) (mcLexBuf_currenttoken)) >= 32) && ( ((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || (( ((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) + { + mcLexBuf_getToken (); + } if (Debugging) - mcPrintf_printf0 ((char *) " ***\\n", 6); + { + mcPrintf_printf0 ((char *) " ***\\n", 6); + } } @@ -2926,8 +2936,10 @@ static void SyntaxCheck (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st { /* and again (see above re: ORD) */ - if (! ((((((unsigned int) (mcLexBuf_currenttoken)) < 32) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & (stopset0)) != 0))) || (((((unsigned int) (mcLexBuf_currenttoken)) >= 32) && (((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || ((((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) - SyntaxError (stopset0, stopset1, stopset2); + if (! (((( ((unsigned int) (mcLexBuf_currenttoken)) < 32) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & (stopset0)) != 0))) || ((( ((unsigned int) (mcLexBuf_currenttoken)) >= 32) && ( ((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || (( ((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) + { + SyntaxError (stopset0, stopset1, stopset2); + } } @@ -2945,12 +2957,20 @@ static void WarnMissingToken (mcReserved_toktype t) s0 = (SetOfStop0) 0; s1 = (SetOfStop1) 0; s2 = (SetOfStop2) 0; - if (((unsigned int) (t)) < 32) - s0 = (SetOfStop0) ((1 << (t-mcReserved_eoftok))); - else if (((unsigned int) (t)) < 64) - s1 = (SetOfStop1) ((1 << (t-mcReserved_arraytok))); + if ( ((unsigned int) (t)) < 32) + { + s0 = (SetOfStop0) ((1 << (t-mcReserved_eoftok))); + } + else if ( ((unsigned int) (t)) < 64) + { + /* avoid dangling else. */ + s1 = (SetOfStop1) ((1 << (t-mcReserved_arraytok))); + } else - s2 = (SetOfStop2) ((1 << (t-mcReserved_recordtok))); + { + /* avoid dangling else. */ + s2 = (SetOfStop2) ((1 << (t-mcReserved_recordtok))); + } str = DescribeStop (s0, s1, s2); str = DynamicStrings_ConCat (DynamicStrings_InitString ((char *) "syntax error,", 13), DynamicStrings_Mark (str)); mcError_errorStringAt (str, mcLexBuf_getTokenNo ()); @@ -2967,7 +2987,9 @@ static void MissingToken (mcReserved_toktype t) if ((((t != mcReserved_identtok) && (t != mcReserved_integertok)) && (t != mcReserved_realtok)) && (t != mcReserved_stringtok)) { if (Debugging) - mcPrintf_printf0 ((char *) "inserting token\\n", 17); + { + mcPrintf_printf0 ((char *) "inserting token\\n", 17); + } mcLexBuf_insertToken (t); } } @@ -2979,14 +3001,16 @@ static void MissingToken (mcReserved_toktype t) static unsigned int CheckAndInsert (mcReserved_toktype t, SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { - if ((((((unsigned int) (t)) < 32) && ((((1 << (t-mcReserved_eoftok)) & (stopset0)) != 0))) || (((((unsigned int) (t)) >= 32) && (((unsigned int) (t)) < 64)) && ((((1 << (t-mcReserved_arraytok)) & (stopset1)) != 0)))) || ((((unsigned int) (t)) >= 64) && ((((1 << (t-mcReserved_recordtok)) & (stopset2)) != 0)))) + if (((( ((unsigned int) (t)) < 32) && ((((1 << (t-mcReserved_eoftok)) & (stopset0)) != 0))) || ((( ((unsigned int) (t)) >= 32) && ( ((unsigned int) (t)) < 64)) && ((((1 << (t-mcReserved_arraytok)) & (stopset1)) != 0)))) || (( ((unsigned int) (t)) >= 64) && ((((1 << (t-mcReserved_recordtok)) & (stopset2)) != 0)))) { WarnMissingToken (t); mcLexBuf_insertTokenAndRewind (t); return TRUE; } else - return FALSE; + { + return FALSE; + } } @@ -2996,10 +3020,14 @@ static unsigned int CheckAndInsert (mcReserved_toktype t, SetOfStop0 stopset0, S static unsigned int InStopSet (mcReserved_toktype t, SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { - if ((((((unsigned int) (t)) < 32) && ((((1 << (t-mcReserved_eoftok)) & (stopset0)) != 0))) || (((((unsigned int) (t)) >= 32) && (((unsigned int) (t)) < 64)) && ((((1 << (t-mcReserved_arraytok)) & (stopset1)) != 0)))) || ((((unsigned int) (t)) >= 64) && ((((1 << (t-mcReserved_recordtok)) & (stopset2)) != 0)))) - return TRUE; + if (((( ((unsigned int) (t)) < 32) && ((((1 << (t-mcReserved_eoftok)) & (stopset0)) != 0))) || ((( ((unsigned int) (t)) >= 32) && ( ((unsigned int) (t)) < 64)) && ((((1 << (t-mcReserved_arraytok)) & (stopset1)) != 0)))) || (( ((unsigned int) (t)) >= 64) && ((((1 << (t-mcReserved_recordtok)) & (stopset2)) != 0)))) + { + return TRUE; + } else - return FALSE; + { + return FALSE; + } } @@ -3015,11 +3043,13 @@ static void PeepToken (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop { /* and again (see above re: ORD) */ - if ((! ((((((unsigned int) (mcLexBuf_currenttoken)) < 32) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & (stopset0)) != 0))) || (((((unsigned int) (mcLexBuf_currenttoken)) >= 32) && (((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || ((((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) && (! (InStopSet ((mcReserved_toktype) mcReserved_identtok, stopset0, stopset1, stopset2)))) - /* SyntaxCheck would fail since currentoken is not part of the stopset + if ((! (((( ((unsigned int) (mcLexBuf_currenttoken)) < 32) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & (stopset0)) != 0))) || ((( ((unsigned int) (mcLexBuf_currenttoken)) >= 32) && ( ((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || (( ((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) && (! (InStopSet ((mcReserved_toktype) mcReserved_identtok, stopset0, stopset1, stopset2)))) + { + /* SyntaxCheck would fail since currentoken is not part of the stopset we check to see whether any of currenttoken might be a commonly omitted token */ - if ((((((((CheckAndInsert ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2)) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rsbratok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rcbratok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_periodtok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_oftok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_commatok, stopset0, stopset1, stopset2))) - {} /* empty. */ + if ((((((((CheckAndInsert ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2)) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rsbratok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rcbratok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_periodtok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_oftok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_commatok, stopset0, stopset1, stopset2))) + {} /* empty. */ + } } @@ -3034,10 +3064,14 @@ static void Expect (mcReserved_toktype t, SetOfStop0 stopset0, SetOfStop1 stopse /* avoid dangling else. */ mcLexBuf_getToken (); if (Pass1) - PeepToken (stopset0, stopset1, stopset2); + { + PeepToken (stopset0, stopset1, stopset2); + } } else - MissingToken (t); + { + MissingToken (t); + } SyntaxCheck (stopset0, stopset1, stopset2); } @@ -3120,11 +3154,19 @@ static void registerImport (nameKey_Name ident, unsigned int scoped) static void FileUnit (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_definitiontok) - DefinitionModule (stopset0, stopset1, stopset2); + { + DefinitionModule (stopset0, stopset1, stopset2); + } else if (((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_implementationtok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))))) != 0))) - ImplementationOrProgramModule (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ImplementationOrProgramModule (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: IMPLEMENTATION MODULE DEFINITION", 50); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: IMPLEMENTATION MODULE DEFINITION", 50); + } } @@ -3154,10 +3196,14 @@ static void ProgramModule (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 curmodule = decl_lookupModule (curident); decl_enterScope (curmodule); if (mcLexBuf_currenttoken == mcReserved_lsbratok) - Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + { + Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); while (((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok))))) != 0))) - Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + { + Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + } /* while */ Block (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok))), stopset1, stopset2); @@ -3198,10 +3244,14 @@ static void ImplementationModule (SetOfStop0 stopset0, SetOfStop1 stopset1, SetO decl_enterScope (decl_lookupDef (curident)); decl_enterScope (curmodule); if (mcLexBuf_currenttoken == mcReserved_lsbratok) - Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + { + Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); while (((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok))))) != 0))) - Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + { + Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + } /* while */ Block (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok))), stopset1, stopset2); @@ -3225,11 +3275,19 @@ static void ImplementationModule (SetOfStop0 stopset0, SetOfStop1 stopset1, SetO static void ImplementationOrProgramModule (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_implementationtok) - ImplementationModule (stopset0, stopset1, stopset2); + { + ImplementationModule (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_moduletok) - ProgramModule (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ProgramModule (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: MODULE IMPLEMENTATION", 39); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: MODULE IMPLEMENTATION", 39); + } } @@ -3244,11 +3302,19 @@ static void ImplementationOrProgramModule (SetOfStop0 stopset0, SetOfStop1 stops static void Number (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_integertok) - Integer (stopset0, stopset1, stopset2); + { + Integer (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_realtok) - Real (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Real (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: real number integer number", 44); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: real number integer number", 44); + } } @@ -3319,23 +3385,49 @@ static void ConstExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop static void Relation (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_equaltok) - Expect ((mcReserved_toktype) mcReserved_equaltok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_equaltok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_hashtok) - Expect ((mcReserved_toktype) mcReserved_hashtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_hashtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lessgreatertok) - Expect ((mcReserved_toktype) mcReserved_lessgreatertok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_lessgreatertok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lesstok) - Expect ((mcReserved_toktype) mcReserved_lesstok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_lesstok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lessequaltok) - Expect ((mcReserved_toktype) mcReserved_lessequaltok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_lessequaltok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_greatertok) - Expect ((mcReserved_toktype) mcReserved_greatertok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_greatertok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_greaterequaltok) - Expect ((mcReserved_toktype) mcReserved_greaterequaltok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_greaterequaltok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_intok) - Expect ((mcReserved_toktype) mcReserved_intok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_intok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: IN >= > <= < <> # =", 37); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: IN >= > <= < <> # =", 37); + } } @@ -3377,13 +3469,20 @@ static void UnaryOrConstTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto } else if (mcLexBuf_currenttoken == mcReserved_minustok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_minustok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)))); ConstTerm (stopset0, stopset1, stopset2); } else if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok))))) != 0)))) - ConstTerm (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstTerm (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: NOT ( integer number real number __ATTRIBUTE__ identifier { string - +", 88); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: NOT ( integer number real number __ATTRIBUTE__ identifier { string - +", 88); + } } @@ -3398,13 +3497,24 @@ static void UnaryOrConstTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto static void AddOperator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_plustok) - Expect ((mcReserved_toktype) mcReserved_plustok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_plustok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_minustok) - Expect ((mcReserved_toktype) mcReserved_minustok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_minustok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_ortok) - Expect ((mcReserved_toktype) mcReserved_ortok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_ortok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: OR - +", 24); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: OR - +", 24); + } } @@ -3440,21 +3550,44 @@ static void ConstTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop static void MulOperator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_timestok) - Expect ((mcReserved_toktype) mcReserved_timestok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_timestok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_dividetok) - Expect ((mcReserved_toktype) mcReserved_dividetok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_dividetok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_divtok) - Expect ((mcReserved_toktype) mcReserved_divtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_divtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_modtok) - Expect ((mcReserved_toktype) mcReserved_modtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_modtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_remtok) - Expect ((mcReserved_toktype) mcReserved_remtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_remtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_andtok) - Expect ((mcReserved_toktype) mcReserved_andtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_andtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_ambersandtok) - Expect ((mcReserved_toktype) mcReserved_ambersandtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_ambersandtok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: & AND REM MOD DIV / *", 39); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: & AND REM MOD DIV / *", 39); + } } @@ -3471,26 +3604,42 @@ static void MulOperator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st static void ConstFactor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok))))) != 0))) - Number (stopset0, stopset1, stopset2); + { + Number (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_stringtok) - ConstString (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstString (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken == mcReserved_lcbratok) || (mcLexBuf_currenttoken == mcReserved_identtok)) - ConstSetOrQualidentOrFunction (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstSetOrQualidentOrFunction (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lparatok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)))); ConstExpression (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_nottok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_nottok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)))); ConstFactor (stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_attributetok) - ConstAttribute (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstAttribute (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: __ATTRIBUTE__ NOT ( identifier { string integer number real number", 84); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: __ATTRIBUTE__ NOT ( identifier { string integer number real number", 84); + } } @@ -3578,7 +3727,9 @@ static void Constructor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st { Expect ((mcReserved_toktype) mcReserved_lcbratok, stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)))); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok))))) != 0)))) - ArraySetRecordValue (stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok))), stopset1, stopset2); + { + ArraySetRecordValue (stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rcbratok, stopset0, stopset1, stopset2); } @@ -3604,18 +3755,32 @@ static void ConstSetOrQualidentOrFunction (SetOfStop0 stopset0, SetOfStop1 stops /* avoid gcc warning by using compound statement even if not strictly necessary. */ /* seen optional [ | ] expression */ if (mcLexBuf_currenttoken == mcReserved_lcbratok) - Constructor (stopset0, stopset1, stopset2); + { + Constructor (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lparatok) - ConstActualParameters (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstActualParameters (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: ( {", 21); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ( {", 21); + } } /* end of optional [ | ] expression */ } else if (mcLexBuf_currenttoken == mcReserved_lcbratok) - Constructor (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Constructor (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: { identifier", 30); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: { identifier", 30); + } } @@ -3666,9 +3831,12 @@ static void ConstAttribute (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void ConstAttributeExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_identtok) - Ident (stopset0, stopset1, stopset2); + { + Ident (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lesstok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_lesstok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Qualident (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_commatok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); @@ -3676,7 +3844,10 @@ static void ConstAttributeExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, Expect ((mcReserved_toktype) mcReserved_greatertok, stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: < identifier", 30); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: < identifier", 30); + } } @@ -3726,7 +3897,9 @@ static void ByteAlignment (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void OptAlignmentExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_lparatok) - AlignmentExpression (stopset0, stopset1, stopset2); + { + AlignmentExpression (stopset0, stopset1, stopset2); + } } @@ -3757,7 +3930,9 @@ static void AlignmentExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf static void Alignment (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_ldirectivetok) - ByteAlignment (stopset0, stopset1, stopset2); + { + ByteAlignment (stopset0, stopset1, stopset2); + } } @@ -3793,19 +3968,39 @@ static void TypeDeclaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop static void Type (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_identtok)) - DefSimpleType (stopset0, stopset1, stopset2); + { + DefSimpleType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_arraytok) - ArrayType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ArrayType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_recordtok) - RecordType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + RecordType (stopset0, stopset1, stopset2); + } else if ((((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_packedsettok-mcReserved_arraytok)) | (1 << (mcReserved_oftok-mcReserved_arraytok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_settok)) - SetType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SetType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_pointertok) - PointerType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + PointerType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_proceduretok) - ProcedureType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ProcedureType (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: PROCEDURE POINTER SET PACKEDSET OF RECORD ARRAY identifier ( [", 80); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: PROCEDURE POINTER SET PACKEDSET OF RECORD ARRAY identifier ( [", 80); + } } @@ -3825,14 +4020,25 @@ static void SimpleType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto /* avoid dangling else. */ Qualident (stopset0|(SetOfStop0) ((1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_lsbratok) - SubrangeType (stopset0, stopset1, stopset2); + { + SubrangeType (stopset0, stopset1, stopset2); + } } else if (mcLexBuf_currenttoken == mcReserved_lparatok) - Enumeration (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Enumeration (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lsbratok) - SubrangeType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SubrangeType (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: [ ( identifier", 32); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: [ ( identifier", 32); + } } @@ -3960,7 +4166,9 @@ static void RecordType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto { Expect ((mcReserved_toktype) mcReserved_recordtok, stopset0|(SetOfStop0) ((1 << (mcReserved_ldirectivetok-mcReserved_eoftok)) | (1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_casetok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); if (mcLexBuf_currenttoken == mcReserved_ldirectivetok) - DefaultRecordAttributes (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_casetok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + { + DefaultRecordAttributes (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_casetok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + } FieldListSequence (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok))), stopset2); Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2); } @@ -4089,7 +4297,9 @@ static void FieldListSequence (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt static void FieldListStatement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken == mcReserved_casetok) || (mcLexBuf_currenttoken == mcReserved_identtok)) - FieldList (stopset0, stopset1, stopset2); + { + FieldList (stopset0, stopset1, stopset2); + } } @@ -4114,6 +4324,7 @@ static void FieldList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop } else if (mcLexBuf_currenttoken == mcReserved_casetok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_casetok, stopset0|(SetOfStop0) ((1 << (mcReserved_colontok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); CaseTag (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2); Expect ((mcReserved_toktype) mcReserved_oftok, stopset0|(SetOfStop0) ((1 << (mcReserved_bartok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_elsetok-mcReserved_arraytok)) | (1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)))); @@ -4132,7 +4343,10 @@ static void FieldList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: CASE identifier", 33); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: CASE identifier", 33); + } } @@ -4147,7 +4361,9 @@ static void FieldList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop static void TagIdent (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_identtok) - Ident (stopset0, stopset1, stopset2); + { + Ident (stopset0, stopset1, stopset2); + } } @@ -4260,23 +4476,49 @@ static void SilentConstExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, Set static void SilentRelation (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_equaltok) - Expect ((mcReserved_toktype) mcReserved_equaltok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_equaltok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_hashtok) - Expect ((mcReserved_toktype) mcReserved_hashtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_hashtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lessgreatertok) - Expect ((mcReserved_toktype) mcReserved_lessgreatertok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_lessgreatertok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lesstok) - Expect ((mcReserved_toktype) mcReserved_lesstok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_lesstok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lessequaltok) - Expect ((mcReserved_toktype) mcReserved_lessequaltok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_lessequaltok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_greatertok) - Expect ((mcReserved_toktype) mcReserved_greatertok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_greatertok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_greaterequaltok) - Expect ((mcReserved_toktype) mcReserved_greaterequaltok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_greaterequaltok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_intok) - Expect ((mcReserved_toktype) mcReserved_intok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_intok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: IN >= > <= < <> # =", 37); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: IN >= > <= < <> # =", 37); + } } @@ -4320,13 +4562,20 @@ static void SilentUnaryOrConstTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, Se } else if (mcLexBuf_currenttoken == mcReserved_minustok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_minustok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)))); SilentConstTerm (stopset0, stopset1, stopset2); } else if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok))))) != 0)))) - SilentConstTerm (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SilentConstTerm (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: NOT ( integer number real number __ATTRIBUTE__ { identifier string - +", 88); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: NOT ( integer number real number __ATTRIBUTE__ { identifier string - +", 88); + } } @@ -4341,13 +4590,24 @@ static void SilentUnaryOrConstTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, Se static void SilentAddOperator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_plustok) - Expect ((mcReserved_toktype) mcReserved_plustok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_plustok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_minustok) - Expect ((mcReserved_toktype) mcReserved_minustok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_minustok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_ortok) - Expect ((mcReserved_toktype) mcReserved_ortok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_ortok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: OR - +", 24); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: OR - +", 24); + } } @@ -4383,21 +4643,44 @@ static void SilentConstTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop static void SilentMulOperator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_timestok) - Expect ((mcReserved_toktype) mcReserved_timestok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_timestok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_dividetok) - Expect ((mcReserved_toktype) mcReserved_dividetok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_dividetok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_divtok) - Expect ((mcReserved_toktype) mcReserved_divtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_divtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_modtok) - Expect ((mcReserved_toktype) mcReserved_modtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_modtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_remtok) - Expect ((mcReserved_toktype) mcReserved_remtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_remtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_andtok) - Expect ((mcReserved_toktype) mcReserved_andtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_andtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_ambersandtok) - Expect ((mcReserved_toktype) mcReserved_ambersandtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_ambersandtok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: & AND REM MOD DIV / *", 39); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: & AND REM MOD DIV / *", 39); + } } @@ -4416,26 +4699,42 @@ static void SilentMulOperator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt static void SilentConstFactor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok))))) != 0))) - Number (stopset0, stopset1, stopset2); + { + Number (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_stringtok) - SilentConstString (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SilentConstString (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken == mcReserved_lcbratok) || (mcLexBuf_currenttoken == mcReserved_identtok)) - SilentConstSetOrQualidentOrFunction (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SilentConstSetOrQualidentOrFunction (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lparatok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)))); SilentConstExpression (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_nottok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_nottok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)))); SilentConstFactor (stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_attributetok) - SilentConstAttribute (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SilentConstAttribute (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: __ATTRIBUTE__ NOT ( { identifier string integer number real number", 84); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: __ATTRIBUTE__ NOT ( { identifier string integer number real number", 84); + } } @@ -4487,9 +4786,12 @@ static void SilentConstAttribute (SetOfStop0 stopset0, SetOfStop1 stopset1, SetO static void SilentConstAttributeExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_identtok) - Ident (stopset0, stopset1, stopset2); + { + Ident (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lesstok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_lesstok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_commatok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)))); @@ -4497,7 +4799,10 @@ static void SilentConstAttributeExpression (SetOfStop0 stopset0, SetOfStop1 stop Expect ((mcReserved_toktype) mcReserved_greatertok, stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: < identifier", 30); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: < identifier", 30); + } } @@ -4571,7 +4876,9 @@ static void SilentConstructor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt { Expect ((mcReserved_toktype) mcReserved_lcbratok, stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)))); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok))))) != 0)))) - SilentArraySetRecordValue (stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok))), stopset1, stopset2); + { + SilentArraySetRecordValue (stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rcbratok, stopset0, stopset1, stopset2); } @@ -4589,7 +4896,9 @@ static void SilentConstructor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt static void SilentConstSetOrQualidentOrFunction (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_lcbratok) - SilentConstructor (stopset0, stopset1, stopset2); + { + SilentConstructor (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_identtok) { /* avoid dangling else. */ @@ -4599,16 +4908,27 @@ static void SilentConstSetOrQualidentOrFunction (SetOfStop0 stopset0, SetOfStop1 /* avoid gcc warning by using compound statement even if not strictly necessary. */ /* seen optional [ | ] expression */ if (mcLexBuf_currenttoken == mcReserved_lcbratok) - SilentConstructor (stopset0, stopset1, stopset2); + { + SilentConstructor (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lparatok) - SilentActualParameters (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SilentActualParameters (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: ( {", 21); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ( {", 21); + } } /* end of optional [ | ] expression */ } else - ErrorArray ((char *) "expecting one of: identifier {", 30); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: identifier {", 30); + } } @@ -4643,7 +4963,9 @@ static void SilentActualParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, Se { Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)))); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok))))) != 0)))) - SilentExpList (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + { + SilentExpList (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); } @@ -4679,11 +5001,19 @@ static void SilentExpList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void SetType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_settok) - Expect ((mcReserved_toktype) mcReserved_settok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2); + { + Expect ((mcReserved_toktype) mcReserved_settok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_packedsettok) - Expect ((mcReserved_toktype) mcReserved_packedsettok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_packedsettok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2); + } else - ErrorArray ((char *) "expecting one of: PACKEDSET SET", 31); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: PACKEDSET SET", 31); + } Expect ((mcReserved_toktype) mcReserved_oftok, stopset0|(SetOfStop0) ((1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); SimpleType (stopset0, stopset1, stopset2); } @@ -4717,7 +5047,9 @@ static void ProcedureType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 { Expect ((mcReserved_toktype) mcReserved_proceduretok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_lparatok) - FormalTypeList (stopset0, stopset1, stopset2); + { + FormalTypeList (stopset0, stopset1, stopset2); + } } @@ -4740,12 +5072,16 @@ static void FormalTypeList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 } else if ((mcLexBuf_currenttoken == mcReserved_arraytok) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_periodperiodperiodtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) { + /* avoid dangling else. */ ProcedureParameters (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_colontok-mcReserved_eoftok))), stopset1, stopset2); FormalReturn (stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: VAR ... ARRAY identifier )", 44); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: VAR ... ARRAY identifier )", 44); + } } @@ -4784,9 +5120,15 @@ static void OptReturnType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 Expect ((mcReserved_toktype) mcReserved_rsbratok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_identtok) - Qualident (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Qualident (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: identifier [", 30); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: identifier [", 30); + } } @@ -4822,16 +5164,25 @@ static void ProcedureParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf static void ProcedureParameter (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_periodperiodperiodtok) - Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_vartok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_vartok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_arraytok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); FormalType (stopset0, stopset1, stopset2); } else if ((mcLexBuf_currenttoken == mcReserved_arraytok) || (mcLexBuf_currenttoken == mcReserved_identtok)) - FormalType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + FormalType (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: ARRAY identifier VAR ...", 42); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ARRAY identifier VAR ...", 42); + } } @@ -4964,7 +5315,9 @@ static void Designator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto { Qualident (stopset0|(SetOfStop0) ((1 << (mcReserved_uparrowtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_periodtok-mcReserved_eoftok))), stopset1, stopset2); while ((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))))) != 0))) - SubDesignator (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))), stopset1, stopset2); + { + SubDesignator (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))), stopset1, stopset2); + } /* while */ } @@ -4987,14 +5340,21 @@ static void SubDesignator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 } else if (mcLexBuf_currenttoken == mcReserved_lsbratok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_lsbratok, stopset0|(SetOfStop0) ((1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); ArrayExpList (stopset0|(SetOfStop0) ((1 << (mcReserved_rsbratok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rsbratok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_uparrowtok) - Expect ((mcReserved_toktype) mcReserved_uparrowtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_uparrowtok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: ^ [ .", 23); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ^ [ .", 23); + } } @@ -5094,13 +5454,20 @@ static void UnaryOrTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st } else if (mcLexBuf_currenttoken == mcReserved_minustok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_minustok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); Term (stopset0, stopset1, stopset2); } else if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - Term (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Term (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: NOT ( string integer number real number identifier { - +", 74); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: NOT ( string integer number real number identifier { - +", 74); + } } @@ -5136,29 +5503,50 @@ static void Term (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) static void Factor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok))))) != 0))) - Number (stopset0, stopset1, stopset2); + { + Number (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_stringtok) - string (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + string (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken == mcReserved_lcbratok) || (mcLexBuf_currenttoken == mcReserved_identtok)) - SetOrDesignatorOrFunction (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SetOrDesignatorOrFunction (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lparatok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); Expression (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_nottok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_nottok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - Factor (stopset0, stopset1, stopset2); + { + Factor (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_attributetok) - ConstAttribute (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstAttribute (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: __ATTRIBUTE__ real number integer number string ( NOT { identifier", 84); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: __ATTRIBUTE__ real number integer number string ( NOT { identifier", 84); + } } else - ErrorArray ((char *) "expecting one of: NOT ( identifier { string integer number real number", 70); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: NOT ( identifier { string integer number real number", 70); + } } @@ -5183,23 +5571,36 @@ static void SetOrDesignatorOrFunction (SetOfStop0 stopset0, SetOfStop1 stopset1, /* avoid gcc warning by using compound statement even if not strictly necessary. */ /* seen optional [ | ] expression */ if (mcLexBuf_currenttoken == mcReserved_lcbratok) - Constructor (stopset0, stopset1, stopset2); + { + Constructor (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_periodtok-mcReserved_eoftok))))) != 0))) { /* avoid dangling else. */ SimpleDes (stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_lparatok) - ActualParameters (stopset0, stopset1, stopset2); + { + ActualParameters (stopset0, stopset1, stopset2); + } } else - ErrorArray ((char *) "expecting one of: ( ^ [ . {", 27); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ( ^ [ . {", 27); + } } /* end of optional [ | ] expression */ } else if (mcLexBuf_currenttoken == mcReserved_lcbratok) - Constructor (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Constructor (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: { identifier", 30); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: { identifier", 30); + } } @@ -5214,7 +5615,9 @@ static void SetOrDesignatorOrFunction (SetOfStop0 stopset0, SetOfStop1 stopset1, static void SimpleDes (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { while ((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))))) != 0))) - SubDesignator (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))), stopset1, stopset2); + { + SubDesignator (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))), stopset1, stopset2); + } /* while */ } @@ -5231,7 +5634,9 @@ static void ActualParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto { Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - ExpList (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + { + ExpList (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); } @@ -5262,7 +5667,9 @@ static void ReturnStatement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop { Expect ((mcReserved_toktype) mcReserved_returntok, stopset0|(SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - Expression (stopset0, stopset1, stopset2); + { + Expression (stopset0, stopset1, stopset2); + } } @@ -5287,31 +5694,69 @@ static void Statement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop /* avoid gcc warning by using compound statement even if not strictly necessary. */ /* seen optional [ | ] expression */ if (mcLexBuf_currenttoken == mcReserved_identtok) - AssignmentOrProcedureCall (stopset0, stopset1, stopset2); + { + AssignmentOrProcedureCall (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_iftok) - IfStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + IfStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_casetok) - CaseStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + CaseStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_whiletok) - WhileStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + WhileStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_repeattok) - RepeatStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + RepeatStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_looptok) - LoopStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + LoopStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_fortok) - ForStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ForStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_withtok) - WithStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + WithStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_asmtok) - AsmStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + AsmStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_exittok) - ExitStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ExitStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_returntok) - ReturnStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ReturnStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_retrytok) - RetryStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + RetryStatement (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: RETRY RETURN EXIT ASM WITH FOR LOOP REPEAT WHILE CASE IF identifier", 85); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: RETRY RETURN EXIT ASM WITH FOR LOOP REPEAT WHILE CASE IF identifier", 85); + } } /* end of optional [ | ] expression */ } @@ -5352,7 +5797,10 @@ static void AssignmentOrProcedureCall (SetOfStop0 stopset0, SetOfStop1 stopset1, Expression (stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_lparatok) - ActualParameters (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ActualParameters (stopset0, stopset1, stopset2); + } /* epsilon */ } @@ -5446,15 +5894,21 @@ static void CaseStatement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void CaseEndStatement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_endtok) - Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_elsetok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_elsetok, stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_exittok-mcReserved_arraytok)) | (1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_iftok-mcReserved_arraytok)) | (1 << (mcReserved_casetok-mcReserved_arraytok)) | (1 << (mcReserved_looptok-mcReserved_arraytok)) | (1 << (mcReserved_fortok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_returntok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_whiletok-mcReserved_recordtok)) | (1 << (mcReserved_repeattok-mcReserved_recordtok)) | (1 << (mcReserved_withtok-mcReserved_recordtok)) | (1 << (mcReserved_asmtok-mcReserved_recordtok)) | (1 << (mcReserved_retrytok-mcReserved_recordtok)))); StatementSequence (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok))), stopset2); Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: ELSE END", 26); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ELSE END", 26); + } } @@ -5678,9 +6132,15 @@ static void DefineBuiltinProcedure (SetOfStop0 stopset0, SetOfStop1 stopset1, Se Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_inlinetok) - Expect ((mcReserved_toktype) mcReserved_inlinetok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_inlinetok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: __INLINE__ __ATTRIBUTE__", 42); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: __INLINE__ __ATTRIBUTE__", 42); + } } /* end of optional [ | ] expression */ } @@ -5705,7 +6165,9 @@ static void ProcedureHeading (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto ProcedureIdent (stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); decl_enterScope (curproc); if (mcLexBuf_currenttoken == mcReserved_lparatok) - FormalParameters (stopset0, stopset1, stopset2); + { + FormalParameters (stopset0, stopset1, stopset2); + } } @@ -5724,11 +6186,19 @@ static void Builtin (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopse /* avoid gcc warning by using compound statement even if not strictly necessary. */ /* seen optional [ | ] expression */ if (mcLexBuf_currenttoken == mcReserved_builtintok) - Expect ((mcReserved_toktype) mcReserved_builtintok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_builtintok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_inlinetok) - Expect ((mcReserved_toktype) mcReserved_inlinetok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_inlinetok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: __INLINE__ __BUILTIN__", 40); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: __INLINE__ __BUILTIN__", 40); + } } /* end of optional [ | ] expression */ } @@ -5749,7 +6219,9 @@ static void DefProcedureHeading (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf Builtin (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); ProcedureIdent (stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_lparatok) - DefFormalParameters (stopset0, stopset1, stopset2); + { + DefFormalParameters (stopset0, stopset1, stopset2); + } } @@ -5767,7 +6239,9 @@ static void DefProcedureHeading (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf static void ProcedureBlock (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { while ((((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))))) != 0))) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok))))) != 0)))) - Declaration (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + { + Declaration (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + } /* while */ if (mcLexBuf_currenttoken == mcReserved_begintok) { @@ -5790,7 +6264,9 @@ static void ProcedureBlock (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void Block (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { while ((((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))))) != 0))) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok))))) != 0)))) - Declaration (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + { + Declaration (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + } /* while */ InitialBlock (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok))), stopset2); FinalBlock (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok))), stopset2); @@ -5945,6 +6421,7 @@ static void Declaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st } else if (mcLexBuf_currenttoken == mcReserved_typetok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_typetok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); while (mcLexBuf_currenttoken == mcReserved_identtok) { @@ -5955,6 +6432,7 @@ static void Declaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st } else if (mcLexBuf_currenttoken == mcReserved_vartok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_vartok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); while (mcLexBuf_currenttoken == mcReserved_identtok) { @@ -5965,16 +6443,21 @@ static void Declaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st } else if (mcLexBuf_currenttoken == mcReserved_proceduretok) { + /* avoid dangling else. */ ProcedureDeclaration (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_moduletok) { + /* avoid dangling else. */ ModuleDeclaration (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: MODULE PROCEDURE VAR TYPE CONST", 49); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: MODULE PROCEDURE VAR TYPE CONST", 49); + } } @@ -5990,7 +6473,9 @@ static void DefFormalParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf { Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_periodperiodperiodtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); if ((mcLexBuf_currenttoken == mcReserved_lsbratok) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_periodperiodperiodtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - DefMultiFPSection (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + { + DefMultiFPSection (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_colontok-mcReserved_eoftok))), stopset1, stopset2); FormalReturn (stopset0, stopset1, stopset2); } @@ -6007,7 +6492,9 @@ static void DefFormalParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf static void DefMultiFPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken == mcReserved_lsbratok) || (mcLexBuf_currenttoken == mcReserved_periodperiodperiodtok)) - DefExtendedFP (stopset0, stopset1, stopset2); + { + DefExtendedFP (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok))))) != 0))) { /* avoid dangling else. */ @@ -6019,7 +6506,10 @@ static void DefMultiFPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt } } else - ErrorArray ((char *) "expecting one of: identifier VAR ... [", 38); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: identifier VAR ... [", 38); + } } @@ -6035,7 +6525,9 @@ static void FormalParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto { Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_periodperiodperiodtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); if ((mcLexBuf_currenttoken == mcReserved_lsbratok) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_periodperiodperiodtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - MultiFPSection (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + { + MultiFPSection (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_colontok-mcReserved_eoftok))), stopset1, stopset2); FormalReturn (stopset0, stopset1, stopset2); } @@ -6052,7 +6544,9 @@ static void FormalParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto static void MultiFPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken == mcReserved_lsbratok) || (mcLexBuf_currenttoken == mcReserved_periodperiodperiodtok)) - ExtendedFP (stopset0, stopset1, stopset2); + { + ExtendedFP (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok))))) != 0))) { /* avoid dangling else. */ @@ -6064,7 +6558,10 @@ static void MultiFPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 } } else - ErrorArray ((char *) "expecting one of: identifier VAR ... [", 38); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: identifier VAR ... [", 38); + } } @@ -6079,11 +6576,19 @@ static void MultiFPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void FPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_identtok) - NonVarFPSection (stopset0, stopset1, stopset2); + { + NonVarFPSection (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_vartok) - VarFPSection (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + VarFPSection (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: VAR identifier", 32); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: VAR identifier", 32); + } } @@ -6098,11 +6603,19 @@ static void FPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop static void DefExtendedFP (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_lsbratok) - DefOptArg (stopset0, stopset1, stopset2); + { + DefOptArg (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_periodperiodperiodtok) - Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: ... [", 23); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ... [", 23); + } } @@ -6117,11 +6630,19 @@ static void DefExtendedFP (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void ExtendedFP (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_lsbratok) - OptArg (stopset0, stopset1, stopset2); + { + OptArg (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_periodperiodperiodtok) - Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: ... [", 23); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ... [", 23); + } } @@ -6237,13 +6758,19 @@ static void ModuleDeclaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt Expect ((mcReserved_toktype) mcReserved_moduletok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_lsbratok) - Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + { + Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); while (((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok))))) != 0))) - Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + { + Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + } /* while */ if (mcLexBuf_currenttoken == mcReserved_exporttok) - Export (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + { + Export (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + } Block (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0, stopset1, stopset2); } @@ -6285,13 +6812,20 @@ static void Export (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset } else if (mcLexBuf_currenttoken == mcReserved_unqualifiedtok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_unqualifiedtok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); IdentList (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_identtok) - IdentList (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + { + /* avoid dangling else. */ + IdentList (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: identifier UNQUALIFIED QUALIFIED", 50); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: identifier UNQUALIFIED QUALIFIED", 50); + } Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2); } @@ -6361,11 +6895,19 @@ static void WithoutFromImport (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt static void Import (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_fromtok) - FromImport (stopset0, stopset1, stopset2); + { + FromImport (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_importtok) - WithoutFromImport (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + WithoutFromImport (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: IMPORT FROM", 29); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: IMPORT FROM", 29); + } } @@ -6403,12 +6945,18 @@ static void DefinitionModule (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto curmodule = decl_lookupDef (curident); decl_enterScope (curmodule); while (((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok))))) != 0))) - Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + { + Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + } /* while */ if (mcLexBuf_currenttoken == mcReserved_exporttok) - Export (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + { + Export (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + } while ((((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))))) != 0))) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok))))) != 0)))) - Definition (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + { + Definition (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + } /* while */ Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok))), stopset1, stopset2); @@ -6448,11 +6996,15 @@ static void DefQualident (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 s { Expect ((mcReserved_toktype) mcReserved_periodtok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); if (! (decl_isDef (typeExp))) - ErrorArray ((char *) "the first component of this qualident must be a definition module", 65); + { + ErrorArray ((char *) "the first component of this qualident must be a definition module", 65); + } Ident (stopset0, stopset1, stopset2); typeExp = decl_lookupInScope (typeExp, curident); if (typeExp == NULL) - ErrorArray ((char *) "identifier not found in definition module", 41); + { + ErrorArray ((char *) "identifier not found in definition module", 41); + } } } @@ -6474,9 +7026,13 @@ static void DefOptSubrange (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 /* avoid gcc warning by using compound statement even if not strictly necessary. */ /* seen optional [ | ] expression */ if (mcLexBuf_currenttoken == mcReserved_lsbratok) - SubrangeType (stopset0, stopset1, stopset2); + { + SubrangeType (stopset0, stopset1, stopset2); + } else - decl_putType (typeDes, typeExp); + { + decl_putType (typeDes, typeExp); + } } /* end of optional [ | ] expression */ } @@ -6531,7 +7087,9 @@ static void DefEnumIdentList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto } /* while */ if (typeDes != NULL) - decl_putType (typeDes, n); + { + decl_putType (typeDes, n); + } } @@ -6563,13 +7121,24 @@ static void DefEnumeration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void DefSimpleType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_identtok) - DefTypeEquiv (stopset0, stopset1, stopset2); + { + DefTypeEquiv (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lparatok) - DefEnumeration (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + DefEnumeration (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lsbratok) - SubrangeType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SubrangeType (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: [ ( identifier", 32); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: [ ( identifier", 32); + } } @@ -6585,19 +7154,39 @@ static void DefSimpleType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void DefType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_identtok)) - DefSimpleType (stopset0, stopset1, stopset2); + { + DefSimpleType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_arraytok) - ArrayType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ArrayType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_recordtok) - RecordType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + RecordType (stopset0, stopset1, stopset2); + } else if ((((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_packedsettok-mcReserved_arraytok)) | (1 << (mcReserved_oftok-mcReserved_arraytok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_settok)) - SetType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SetType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_pointertok) - PointerType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + PointerType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_proceduretok) - ProcedureType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ProcedureType (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: PROCEDURE POINTER SET PACKEDSET OF RECORD ARRAY identifier ( [", 80); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: PROCEDURE POINTER SET PACKEDSET OF RECORD ARRAY identifier ( [", 80); + } } @@ -6618,16 +7207,22 @@ static void DefTypeDeclaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfS Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok)) | (1 << (mcReserved_equaltok-mcReserved_eoftok))), stopset1, stopset2); typeDes = decl_lookupSym (curident); if (mcLexBuf_currenttoken == mcReserved_semicolontok) - Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + { + Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + } else if (mcLexBuf_currenttoken == mcReserved_equaltok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_equaltok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_pointertok-mcReserved_arraytok)) | (1 << (mcReserved_packedsettok-mcReserved_arraytok)) | (1 << (mcReserved_oftok-mcReserved_arraytok)) | (1 << (mcReserved_arraytok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_settok-mcReserved_recordtok)) | (1 << (mcReserved_recordtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); DefType (stopset0|(SetOfStop0) ((1 << (mcReserved_ldirectivetok-mcReserved_eoftok)) | (1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); Alignment (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); } else - ErrorArray ((char *) "expecting one of: = ;", 21); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: = ;", 21); + } } /* while */ } @@ -6674,13 +7269,17 @@ static void Definition (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto } else if (mcLexBuf_currenttoken == mcReserved_typetok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_typetok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); while (mcLexBuf_currenttoken == mcReserved_identtok) - DefTypeDeclaration (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + { + DefTypeDeclaration (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + } /* while */ } else if (mcLexBuf_currenttoken == mcReserved_vartok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_vartok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); while (mcLexBuf_currenttoken == mcReserved_identtok) { @@ -6691,11 +7290,15 @@ static void Definition (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto } else if (mcLexBuf_currenttoken == mcReserved_proceduretok) { + /* avoid dangling else. */ DefProcedureHeading (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: PROCEDURE VAR TYPE CONST", 42); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: PROCEDURE VAR TYPE CONST", 42); + } } @@ -6711,7 +7314,9 @@ static void AsmStatement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 s { Expect ((mcReserved_toktype) mcReserved_asmtok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_volatiletok-mcReserved_recordtok)))); if (mcLexBuf_currenttoken == mcReserved_volatiletok) - Expect ((mcReserved_toktype) mcReserved_volatiletok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_volatiletok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)))); AsmOperands (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); @@ -6730,7 +7335,9 @@ static void AsmOperands (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st { string (stopset0|(SetOfStop0) ((1 << (mcReserved_colontok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_colontok) - AsmOperandSpec (stopset0, stopset1, stopset2); + { + AsmOperandSpec (stopset0, stopset1, stopset2); + } } @@ -6773,7 +7380,9 @@ static void AsmOperandSpec (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void AsmList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken == mcReserved_lsbratok) || (mcLexBuf_currenttoken == mcReserved_stringtok)) - AsmElement (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); + { + AsmElement (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); + } while (mcLexBuf_currenttoken == mcReserved_commatok) { Expect ((mcReserved_toktype) mcReserved_commatok, stopset0|(SetOfStop0) ((1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)))); @@ -6810,7 +7419,9 @@ static void NamedOperand (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 s static void AsmOperandName (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_lsbratok) - NamedOperand (stopset0, stopset1, stopset2); + { + NamedOperand (stopset0, stopset1, stopset2); + } } @@ -6843,7 +7454,9 @@ static void AsmElement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto static void TrashList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_stringtok) - string (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); + { + string (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); + } while (mcLexBuf_currenttoken == mcReserved_commatok) { Expect ((mcReserved_toktype) mcReserved_commatok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)))); --- a/src/gcc/gm2/mc-boot/Gmcp3.c +++ b/src/gcc/gm2/mc-boot/Gmcp3.c @@ -2264,12 +2264,16 @@ static void importInto (decl_node m, nameKey_Name name, decl_node current) mcDebug_assert (((decl_isDef (current)) || (decl_isModule (current))) || (decl_isImp (current))); s = decl_lookupExported (m, name); if (s == NULL) - mcMetaError_metaError2 ((char *) "{%1k} was not exported from definition module {%2a}", 51, (unsigned char *) &name, (sizeof (name)-1), (unsigned char *) &m, (sizeof (m)-1)); + { + mcMetaError_metaError2 ((char *) "{%1k} was not exported from definition module {%2a}", 51, (unsigned char *) &name, (sizeof (name)-1), (unsigned char *) &m, (sizeof (m)-1)); + } else { o = decl_import (current, s); if (s != o) - mcMetaError_metaError2 ((char *) "{%1ad} cannot be imported into the current module as it causes a name clash with {%2ad}", 87, (unsigned char *) &s, (sizeof (s)-1), (unsigned char *) &o, (sizeof (o)-1)); + { + mcMetaError_metaError2 ((char *) "{%1ad} cannot be imported into the current module as it causes a name clash with {%2ad}", 87, (unsigned char *) &s, (sizeof (s)-1), (unsigned char *) &o, (sizeof (o)-1)); + } } } @@ -2761,9 +2765,13 @@ static DynamicStrings_String DescribeStop (SetOfStop0 stopset0, SetOfStop1 stops message = DynamicStrings_KillString (message); } else if (n == 1) - str = DynamicStrings_ConCat (message, DynamicStrings_Mark (DynamicStrings_InitString ((char *) " missing ", 9))); + { + /* avoid dangling else. */ + str = DynamicStrings_ConCat (message, DynamicStrings_Mark (DynamicStrings_InitString ((char *) " missing ", 9))); + } else { + /* avoid dangling else. */ str = DynamicStrings_ConCat (DynamicStrings_InitString ((char *) " expecting one of", 17), message); message = DynamicStrings_KillString (message); } @@ -3159,17 +3167,23 @@ static void SyntaxError (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st { DescribeError (stopset0, stopset1, stopset2); if (Debugging) - mcPrintf_printf0 ((char *) "\\nskipping token *** ", 21); + { + mcPrintf_printf0 ((char *) "\\nskipping token *** ", 21); + } /* yes the ORD(currenttoken) looks ugly, but it is *much* safer than using currenttoken= 32) && (((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || ((((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) - mcLexBuf_getToken (); + while (! (((( ((unsigned int) (mcLexBuf_currenttoken)) < 32) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & (stopset0)) != 0))) || ((( ((unsigned int) (mcLexBuf_currenttoken)) >= 32) && ( ((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || (( ((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) + { + mcLexBuf_getToken (); + } if (Debugging) - mcPrintf_printf0 ((char *) " ***\\n", 6); + { + mcPrintf_printf0 ((char *) " ***\\n", 6); + } } @@ -3181,8 +3195,10 @@ static void SyntaxCheck (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st { /* and again (see above re: ORD) */ - if (! ((((((unsigned int) (mcLexBuf_currenttoken)) < 32) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & (stopset0)) != 0))) || (((((unsigned int) (mcLexBuf_currenttoken)) >= 32) && (((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || ((((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) - SyntaxError (stopset0, stopset1, stopset2); + if (! (((( ((unsigned int) (mcLexBuf_currenttoken)) < 32) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & (stopset0)) != 0))) || ((( ((unsigned int) (mcLexBuf_currenttoken)) >= 32) && ( ((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || (( ((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) + { + SyntaxError (stopset0, stopset1, stopset2); + } } @@ -3200,12 +3216,20 @@ static void WarnMissingToken (mcReserved_toktype t) s0 = (SetOfStop0) 0; s1 = (SetOfStop1) 0; s2 = (SetOfStop2) 0; - if (((unsigned int) (t)) < 32) - s0 = (SetOfStop0) ((1 << (t-mcReserved_eoftok))); - else if (((unsigned int) (t)) < 64) - s1 = (SetOfStop1) ((1 << (t-mcReserved_arraytok))); + if ( ((unsigned int) (t)) < 32) + { + s0 = (SetOfStop0) ((1 << (t-mcReserved_eoftok))); + } + else if ( ((unsigned int) (t)) < 64) + { + /* avoid dangling else. */ + s1 = (SetOfStop1) ((1 << (t-mcReserved_arraytok))); + } else - s2 = (SetOfStop2) ((1 << (t-mcReserved_recordtok))); + { + /* avoid dangling else. */ + s2 = (SetOfStop2) ((1 << (t-mcReserved_recordtok))); + } str = DescribeStop (s0, s1, s2); str = DynamicStrings_ConCat (DynamicStrings_InitString ((char *) "syntax error,", 13), DynamicStrings_Mark (str)); mcError_errorStringAt (str, mcLexBuf_getTokenNo ()); @@ -3222,7 +3246,9 @@ static void MissingToken (mcReserved_toktype t) if ((((t != mcReserved_identtok) && (t != mcReserved_integertok)) && (t != mcReserved_realtok)) && (t != mcReserved_stringtok)) { if (Debugging) - mcPrintf_printf0 ((char *) "inserting token\\n", 17); + { + mcPrintf_printf0 ((char *) "inserting token\\n", 17); + } mcLexBuf_insertToken (t); } } @@ -3234,14 +3260,16 @@ static void MissingToken (mcReserved_toktype t) static unsigned int CheckAndInsert (mcReserved_toktype t, SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { - if ((((((unsigned int) (t)) < 32) && ((((1 << (t-mcReserved_eoftok)) & (stopset0)) != 0))) || (((((unsigned int) (t)) >= 32) && (((unsigned int) (t)) < 64)) && ((((1 << (t-mcReserved_arraytok)) & (stopset1)) != 0)))) || ((((unsigned int) (t)) >= 64) && ((((1 << (t-mcReserved_recordtok)) & (stopset2)) != 0)))) + if (((( ((unsigned int) (t)) < 32) && ((((1 << (t-mcReserved_eoftok)) & (stopset0)) != 0))) || ((( ((unsigned int) (t)) >= 32) && ( ((unsigned int) (t)) < 64)) && ((((1 << (t-mcReserved_arraytok)) & (stopset1)) != 0)))) || (( ((unsigned int) (t)) >= 64) && ((((1 << (t-mcReserved_recordtok)) & (stopset2)) != 0)))) { WarnMissingToken (t); mcLexBuf_insertTokenAndRewind (t); return TRUE; } else - return FALSE; + { + return FALSE; + } } @@ -3251,10 +3279,14 @@ static unsigned int CheckAndInsert (mcReserved_toktype t, SetOfStop0 stopset0, S static unsigned int InStopSet (mcReserved_toktype t, SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { - if ((((((unsigned int) (t)) < 32) && ((((1 << (t-mcReserved_eoftok)) & (stopset0)) != 0))) || (((((unsigned int) (t)) >= 32) && (((unsigned int) (t)) < 64)) && ((((1 << (t-mcReserved_arraytok)) & (stopset1)) != 0)))) || ((((unsigned int) (t)) >= 64) && ((((1 << (t-mcReserved_recordtok)) & (stopset2)) != 0)))) - return TRUE; + if (((( ((unsigned int) (t)) < 32) && ((((1 << (t-mcReserved_eoftok)) & (stopset0)) != 0))) || ((( ((unsigned int) (t)) >= 32) && ( ((unsigned int) (t)) < 64)) && ((((1 << (t-mcReserved_arraytok)) & (stopset1)) != 0)))) || (( ((unsigned int) (t)) >= 64) && ((((1 << (t-mcReserved_recordtok)) & (stopset2)) != 0)))) + { + return TRUE; + } else - return FALSE; + { + return FALSE; + } } @@ -3270,11 +3302,13 @@ static void PeepToken (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop { /* and again (see above re: ORD) */ - if ((! ((((((unsigned int) (mcLexBuf_currenttoken)) < 32) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & (stopset0)) != 0))) || (((((unsigned int) (mcLexBuf_currenttoken)) >= 32) && (((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || ((((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) && (! (InStopSet ((mcReserved_toktype) mcReserved_identtok, stopset0, stopset1, stopset2)))) - /* SyntaxCheck would fail since currentoken is not part of the stopset + if ((! (((( ((unsigned int) (mcLexBuf_currenttoken)) < 32) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & (stopset0)) != 0))) || ((( ((unsigned int) (mcLexBuf_currenttoken)) >= 32) && ( ((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || (( ((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) && (! (InStopSet ((mcReserved_toktype) mcReserved_identtok, stopset0, stopset1, stopset2)))) + { + /* SyntaxCheck would fail since currentoken is not part of the stopset we check to see whether any of currenttoken might be a commonly omitted token */ - if ((((((((CheckAndInsert ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2)) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rsbratok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rcbratok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_periodtok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_oftok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_commatok, stopset0, stopset1, stopset2))) - {} /* empty. */ + if ((((((((CheckAndInsert ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2)) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rsbratok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rcbratok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_periodtok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_oftok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_commatok, stopset0, stopset1, stopset2))) + {} /* empty. */ + } } @@ -3289,10 +3323,14 @@ static void Expect (mcReserved_toktype t, SetOfStop0 stopset0, SetOfStop1 stopse /* avoid dangling else. */ mcLexBuf_getToken (); if (Pass1) - PeepToken (stopset0, stopset1, stopset2); + { + PeepToken (stopset0, stopset1, stopset2); + } } else - MissingToken (t); + { + MissingToken (t); + } SyntaxCheck (stopset0, stopset1, stopset2); } @@ -3350,11 +3388,19 @@ static void Real (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) static void FileUnit (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_definitiontok) - DefinitionModule (stopset0, stopset1, stopset2); + { + DefinitionModule (stopset0, stopset1, stopset2); + } else if (((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_implementationtok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))))) != 0))) - ImplementationOrProgramModule (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ImplementationOrProgramModule (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: IMPLEMENTATION MODULE DEFINITION", 50); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: IMPLEMENTATION MODULE DEFINITION", 50); + } } @@ -3387,10 +3433,14 @@ static void ProgramModule (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 decl_enterScope (curmodule); decl_resetEnumPos (curmodule); if (mcLexBuf_currenttoken == mcReserved_lsbratok) - Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + { + Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); while (((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok))))) != 0))) - Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + { + Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + } /* while */ Block (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok))), stopset1, stopset2); @@ -3434,10 +3484,14 @@ static void ImplementationModule (SetOfStop0 stopset0, SetOfStop1 stopset1, SetO decl_enterScope (curmodule); decl_resetEnumPos (curmodule); if (mcLexBuf_currenttoken == mcReserved_lsbratok) - Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + { + Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); while (((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok))))) != 0))) - Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + { + Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + } /* while */ Block (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok))), stopset1, stopset2); @@ -3461,11 +3515,19 @@ static void ImplementationModule (SetOfStop0 stopset0, SetOfStop1 stopset1, SetO static void ImplementationOrProgramModule (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_implementationtok) - ImplementationModule (stopset0, stopset1, stopset2); + { + ImplementationModule (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_moduletok) - ProgramModule (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ProgramModule (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: MODULE IMPLEMENTATION", 39); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: MODULE IMPLEMENTATION", 39); + } } @@ -3480,11 +3542,19 @@ static void ImplementationOrProgramModule (SetOfStop0 stopset0, SetOfStop1 stops static void Number (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_integertok) - Integer (stopset0, stopset1, stopset2); + { + Integer (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_realtok) - Real (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Real (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: real number integer number", 44); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: real number integer number", 44); + } } @@ -3605,23 +3675,49 @@ static void ConstExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop static void Relation (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_equaltok) - Expect ((mcReserved_toktype) mcReserved_equaltok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_equaltok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_hashtok) - Expect ((mcReserved_toktype) mcReserved_hashtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_hashtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lessgreatertok) - Expect ((mcReserved_toktype) mcReserved_lessgreatertok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_lessgreatertok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lesstok) - Expect ((mcReserved_toktype) mcReserved_lesstok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_lesstok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lessequaltok) - Expect ((mcReserved_toktype) mcReserved_lessequaltok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_lessequaltok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_greatertok) - Expect ((mcReserved_toktype) mcReserved_greatertok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_greatertok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_greaterequaltok) - Expect ((mcReserved_toktype) mcReserved_greaterequaltok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_greaterequaltok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_intok) - Expect ((mcReserved_toktype) mcReserved_intok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_intok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: IN >= > <= < <> # =", 37); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: IN >= > <= < <> # =", 37); + } } @@ -3663,13 +3759,20 @@ static void UnaryOrConstTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto } else if (mcLexBuf_currenttoken == mcReserved_minustok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_minustok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)))); ConstTerm (stopset0, stopset1, stopset2); } else if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok))))) != 0)))) - ConstTerm (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstTerm (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: NOT ( integer number real number __ATTRIBUTE__ identifier { string - +", 88); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: NOT ( integer number real number __ATTRIBUTE__ identifier { string - +", 88); + } } @@ -3684,13 +3787,24 @@ static void UnaryOrConstTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto static void AddOperator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_plustok) - Expect ((mcReserved_toktype) mcReserved_plustok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_plustok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_minustok) - Expect ((mcReserved_toktype) mcReserved_minustok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_minustok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_ortok) - Expect ((mcReserved_toktype) mcReserved_ortok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_ortok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: OR - +", 24); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: OR - +", 24); + } } @@ -3726,21 +3840,44 @@ static void ConstTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop static void MulOperator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_timestok) - Expect ((mcReserved_toktype) mcReserved_timestok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_timestok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_dividetok) - Expect ((mcReserved_toktype) mcReserved_dividetok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_dividetok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_divtok) - Expect ((mcReserved_toktype) mcReserved_divtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_divtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_modtok) - Expect ((mcReserved_toktype) mcReserved_modtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_modtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_remtok) - Expect ((mcReserved_toktype) mcReserved_remtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_remtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_andtok) - Expect ((mcReserved_toktype) mcReserved_andtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_andtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_ambersandtok) - Expect ((mcReserved_toktype) mcReserved_ambersandtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_ambersandtok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: & AND REM MOD DIV / *", 39); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: & AND REM MOD DIV / *", 39); + } } @@ -3757,26 +3894,42 @@ static void MulOperator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st static void ConstFactor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok))))) != 0))) - Number (stopset0, stopset1, stopset2); + { + Number (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_stringtok) - ConstString (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstString (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken == mcReserved_lcbratok) || (mcLexBuf_currenttoken == mcReserved_identtok)) - ConstSetOrQualidentOrFunction (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstSetOrQualidentOrFunction (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lparatok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)))); ConstExpressionNop (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_nottok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_nottok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)))); ConstFactor (stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_attributetok) - ConstAttribute (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstAttribute (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: __ATTRIBUTE__ NOT ( identifier { string integer number real number", 84); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: __ATTRIBUTE__ NOT ( identifier { string integer number real number", 84); + } } @@ -3864,7 +4017,9 @@ static void Constructor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st { Expect ((mcReserved_toktype) mcReserved_lcbratok, stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)))); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok))))) != 0)))) - ArraySetRecordValue (stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok))), stopset1, stopset2); + { + ArraySetRecordValue (stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rcbratok, stopset0, stopset1, stopset2); } @@ -3890,18 +4045,32 @@ static void ConstSetOrQualidentOrFunction (SetOfStop0 stopset0, SetOfStop1 stops /* avoid gcc warning by using compound statement even if not strictly necessary. */ /* seen optional [ | ] expression */ if (mcLexBuf_currenttoken == mcReserved_lcbratok) - Constructor (stopset0, stopset1, stopset2); + { + Constructor (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lparatok) - ConstActualParameters (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstActualParameters (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: ( {", 21); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ( {", 21); + } } /* end of optional [ | ] expression */ } else if (mcLexBuf_currenttoken == mcReserved_lcbratok) - Constructor (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Constructor (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: { identifier", 30); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: { identifier", 30); + } } @@ -3917,7 +4086,9 @@ static void ConstActualParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, Set { Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)))); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok))))) != 0)))) - ConstExpList (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + { + ConstExpList (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); } @@ -3975,9 +4146,12 @@ static void ConstAttribute (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void ConstAttributeExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_identtok) - Ident (stopset0, stopset1, stopset2); + { + Ident (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lesstok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_lesstok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Qualident (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_commatok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); @@ -3985,7 +4159,10 @@ static void ConstAttributeExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, Expect ((mcReserved_toktype) mcReserved_greatertok, stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: < identifier", 30); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: < identifier", 30); + } } @@ -4016,7 +4193,9 @@ static void ByteAlignment (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void OptAlignmentExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_lparatok) - AlignmentExpression (stopset0, stopset1, stopset2); + { + AlignmentExpression (stopset0, stopset1, stopset2); + } } @@ -4047,7 +4226,9 @@ static void AlignmentExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf static void Alignment (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_ldirectivetok) - ByteAlignment (stopset0, stopset1, stopset2); + { + ByteAlignment (stopset0, stopset1, stopset2); + } } @@ -4218,7 +4399,9 @@ static void RecordType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto n = push (decl_makeRecord ()); n = push ((decl_node) NULL); /* no varient */ if (mcLexBuf_currenttoken == mcReserved_ldirectivetok) - DefaultRecordAttributes (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_casetok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + { + DefaultRecordAttributes (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_casetok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + } FieldListSequence (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok))), stopset2); mcDebug_assert ((pop ()) == NULL); Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2); @@ -4348,7 +4531,9 @@ static void FieldListSequence (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt static void FieldListStatement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken == mcReserved_casetok) || (mcLexBuf_currenttoken == mcReserved_identtok)) - FieldList (stopset0, stopset1, stopset2); + { + FieldList (stopset0, stopset1, stopset2); + } } @@ -4455,6 +4640,7 @@ static void FieldList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop } else if (mcLexBuf_currenttoken == mcReserved_casetok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_casetok, stopset0|(SetOfStop0) ((1 << (mcReserved_colontok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); /* addRecordToList */ d = depth (); @@ -4493,7 +4679,10 @@ static void FieldList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop mcDebug_assert (d == (depth ())); } else - ErrorArray ((char *) "expecting one of: CASE identifier", 33); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: CASE identifier", 33); + } } @@ -4510,9 +4699,13 @@ static void FieldList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop static void TagIdent (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_identtok) - Ident (stopset0, stopset1, stopset2); + { + Ident (stopset0, stopset1, stopset2); + } else - curident = nameKey_NulName; + { + curident = nameKey_NulName; + } } @@ -4573,7 +4766,9 @@ static void CaseTag (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopse mcDebug_assert (decl_isVarient (push (pop ()))); } else - q = NULL; + { + q = NULL; + } decl_buildVarientSelector (r, w, tagident, q); } @@ -4723,11 +4918,19 @@ static void SetType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopse decl_node n; if (mcLexBuf_currenttoken == mcReserved_settok) - Expect ((mcReserved_toktype) mcReserved_settok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2); + { + Expect ((mcReserved_toktype) mcReserved_settok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_packedsettok) - Expect ((mcReserved_toktype) mcReserved_packedsettok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_packedsettok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2); + } else - ErrorArray ((char *) "expecting one of: PACKEDSET SET", 31); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: PACKEDSET SET", 31); + } Expect ((mcReserved_toktype) mcReserved_oftok, stopset0|(SetOfStop0) ((1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); SimpleType (stopset0, stopset1, stopset2); n = push (decl_makeSet (pop ())); @@ -4772,7 +4975,9 @@ static void ProcedureType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 Expect ((mcReserved_toktype) mcReserved_proceduretok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); curproc = push (decl_makeProcType ()); if (mcLexBuf_currenttoken == mcReserved_lparatok) - FormalTypeList (stopset0, stopset1, stopset2); + { + FormalTypeList (stopset0, stopset1, stopset2); + } } @@ -4795,12 +5000,16 @@ static void FormalTypeList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 } else if ((mcLexBuf_currenttoken == mcReserved_arraytok) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_periodperiodperiodtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) { + /* avoid dangling else. */ ProcedureParameters (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_colontok-mcReserved_eoftok))), stopset1, stopset2); FormalReturn (stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: VAR ... ARRAY identifier )", 44); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: VAR ... ARRAY identifier )", 44); + } } @@ -4848,11 +5057,15 @@ static void OptReturnType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 } else if (mcLexBuf_currenttoken == mcReserved_identtok) { + /* avoid dangling else. */ PushQualident (stopset0, stopset1, stopset2); decl_putReturnType (curproc, pop ()); } else - ErrorArray ((char *) "expecting one of: identifier [", 30); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: identifier [", 30); + } } @@ -4909,17 +5122,22 @@ static void ProcedureParameter (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfS } else if (mcLexBuf_currenttoken == mcReserved_vartok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_vartok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_arraytok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); FormalType (stopset0, stopset1, stopset2); n = push (decl_makeVarParameter ((decl_node) NULL, pop (), curproc)); } else if ((mcLexBuf_currenttoken == mcReserved_arraytok) || (mcLexBuf_currenttoken == mcReserved_identtok)) { + /* avoid dangling else. */ FormalType (stopset0, stopset1, stopset2); n = push (decl_makeNonVarParameter ((decl_node) NULL, pop (), curproc)); } else - ErrorArray ((char *) "expecting one of: ARRAY identifier VAR ...", 42); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ARRAY identifier VAR ...", 42); + } } @@ -5030,7 +5248,9 @@ static void Designator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto { Qualident (stopset0|(SetOfStop0) ((1 << (mcReserved_uparrowtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_periodtok-mcReserved_eoftok))), stopset1, stopset2); while ((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))))) != 0))) - SubDesignator (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))), stopset1, stopset2); + { + SubDesignator (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))), stopset1, stopset2); + } /* while */ } @@ -5053,14 +5273,21 @@ static void SubDesignator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 } else if (mcLexBuf_currenttoken == mcReserved_lsbratok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_lsbratok, stopset0|(SetOfStop0) ((1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); ArrayExpList (stopset0|(SetOfStop0) ((1 << (mcReserved_rsbratok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rsbratok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_uparrowtok) - Expect ((mcReserved_toktype) mcReserved_uparrowtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_uparrowtok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: ^ [ .", 23); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ^ [ .", 23); + } } @@ -5160,13 +5387,20 @@ static void UnaryOrTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st } else if (mcLexBuf_currenttoken == mcReserved_minustok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_minustok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); Term (stopset0, stopset1, stopset2); } else if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - Term (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Term (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: NOT ( string integer number real number identifier { - +", 74); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: NOT ( string integer number real number identifier { - +", 74); + } } @@ -5202,29 +5436,50 @@ static void Term (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) static void Factor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok))))) != 0))) - Number (stopset0, stopset1, stopset2); + { + Number (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_stringtok) - string (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + string (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken == mcReserved_lcbratok) || (mcLexBuf_currenttoken == mcReserved_identtok)) - SetOrDesignatorOrFunction (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SetOrDesignatorOrFunction (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lparatok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); Expression (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_nottok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_nottok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - Factor (stopset0, stopset1, stopset2); + { + Factor (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_attributetok) - ConstAttribute (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstAttribute (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: __ATTRIBUTE__ real number integer number string ( NOT { identifier", 84); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: __ATTRIBUTE__ real number integer number string ( NOT { identifier", 84); + } } else - ErrorArray ((char *) "expecting one of: NOT ( identifier { string integer number real number", 70); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: NOT ( identifier { string integer number real number", 70); + } } @@ -5249,23 +5504,36 @@ static void SetOrDesignatorOrFunction (SetOfStop0 stopset0, SetOfStop1 stopset1, /* avoid gcc warning by using compound statement even if not strictly necessary. */ /* seen optional [ | ] expression */ if (mcLexBuf_currenttoken == mcReserved_lcbratok) - Constructor (stopset0, stopset1, stopset2); + { + Constructor (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_periodtok-mcReserved_eoftok))))) != 0))) { /* avoid dangling else. */ SimpleDes (stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_lparatok) - ActualParameters (stopset0, stopset1, stopset2); + { + ActualParameters (stopset0, stopset1, stopset2); + } } else - ErrorArray ((char *) "expecting one of: ( ^ [ . {", 27); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ( ^ [ . {", 27); + } } /* end of optional [ | ] expression */ } else if (mcLexBuf_currenttoken == mcReserved_lcbratok) - Constructor (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Constructor (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: { identifier", 30); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: { identifier", 30); + } } @@ -5280,7 +5548,9 @@ static void SetOrDesignatorOrFunction (SetOfStop0 stopset0, SetOfStop1 stopset1, static void SimpleDes (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { while ((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))))) != 0))) - SubDesignator (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))), stopset1, stopset2); + { + SubDesignator (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))), stopset1, stopset2); + } /* while */ } @@ -5297,7 +5567,9 @@ static void ActualParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto { Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - ExpList (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + { + ExpList (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); } @@ -5328,7 +5600,9 @@ static void ReturnStatement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop { Expect ((mcReserved_toktype) mcReserved_returntok, stopset0|(SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - Expression (stopset0, stopset1, stopset2); + { + Expression (stopset0, stopset1, stopset2); + } } @@ -5353,31 +5627,69 @@ static void Statement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop /* avoid gcc warning by using compound statement even if not strictly necessary. */ /* seen optional [ | ] expression */ if (mcLexBuf_currenttoken == mcReserved_identtok) - AssignmentOrProcedureCall (stopset0, stopset1, stopset2); + { + AssignmentOrProcedureCall (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_iftok) - IfStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + IfStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_casetok) - CaseStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + CaseStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_whiletok) - WhileStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + WhileStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_repeattok) - RepeatStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + RepeatStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_looptok) - LoopStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + LoopStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_fortok) - ForStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ForStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_withtok) - WithStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + WithStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_asmtok) - AsmStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + AsmStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_exittok) - ExitStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ExitStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_returntok) - ReturnStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ReturnStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_retrytok) - RetryStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + RetryStatement (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: RETRY RETURN EXIT ASM WITH FOR LOOP REPEAT WHILE CASE IF identifier", 85); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: RETRY RETURN EXIT ASM WITH FOR LOOP REPEAT WHILE CASE IF identifier", 85); + } } /* end of optional [ | ] expression */ } @@ -5418,7 +5730,10 @@ static void AssignmentOrProcedureCall (SetOfStop0 stopset0, SetOfStop1 stopset1, Expression (stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_lparatok) - ActualParameters (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ActualParameters (stopset0, stopset1, stopset2); + } /* epsilon */ } @@ -5512,15 +5827,21 @@ static void CaseStatement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void CaseEndStatement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_endtok) - Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_elsetok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_elsetok, stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_exittok-mcReserved_arraytok)) | (1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_iftok-mcReserved_arraytok)) | (1 << (mcReserved_casetok-mcReserved_arraytok)) | (1 << (mcReserved_looptok-mcReserved_arraytok)) | (1 << (mcReserved_fortok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_returntok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_whiletok-mcReserved_recordtok)) | (1 << (mcReserved_repeattok-mcReserved_recordtok)) | (1 << (mcReserved_withtok-mcReserved_recordtok)) | (1 << (mcReserved_asmtok-mcReserved_recordtok)) | (1 << (mcReserved_retrytok-mcReserved_recordtok)))); StatementSequence (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok))), stopset2); Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: ELSE END", 26); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ELSE END", 26); + } } @@ -5767,9 +6088,15 @@ static void DefineBuiltinProcedure (SetOfStop0 stopset0, SetOfStop1 stopset1, Se Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_inlinetok) - Expect ((mcReserved_toktype) mcReserved_inlinetok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_inlinetok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: __INLINE__ __ATTRIBUTE__", 42); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: __INLINE__ __ATTRIBUTE__", 42); + } } /* end of optional [ | ] expression */ } @@ -5791,7 +6118,9 @@ static void ProcedureHeading (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto DefineBuiltinProcedure (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); ProcedureIdent (stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_lparatok) - FormalParameters (stopset0, stopset1, stopset2); + { + FormalParameters (stopset0, stopset1, stopset2); + } } @@ -5810,11 +6139,19 @@ static void Builtin (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopse /* avoid gcc warning by using compound statement even if not strictly necessary. */ /* seen optional [ | ] expression */ if (mcLexBuf_currenttoken == mcReserved_builtintok) - Expect ((mcReserved_toktype) mcReserved_builtintok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_builtintok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_inlinetok) - Expect ((mcReserved_toktype) mcReserved_inlinetok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_inlinetok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: __INLINE__ __BUILTIN__", 40); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: __INLINE__ __BUILTIN__", 40); + } } /* end of optional [ | ] expression */ } @@ -5835,7 +6172,9 @@ static void DefProcedureHeading (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf Builtin (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); DefProcedureIdent (stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_lparatok) - DefFormalParameters (stopset0, stopset1, stopset2); + { + DefFormalParameters (stopset0, stopset1, stopset2); + } } @@ -5851,7 +6190,9 @@ static void DefProcedureHeading (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf static void ProcedureBlock (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { while ((((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))))) != 0))) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok))))) != 0)))) - Declaration (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + { + Declaration (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + } /* while */ if (mcLexBuf_currenttoken == mcReserved_begintok) { @@ -5873,7 +6214,9 @@ static void ProcedureBlock (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void Block (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { while ((((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))))) != 0))) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok))))) != 0)))) - Declaration (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + { + Declaration (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + } /* while */ InitialBlock (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok))), stopset2); FinalBlock (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok))), stopset2); @@ -6028,13 +6371,17 @@ static void Declaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st } else if (mcLexBuf_currenttoken == mcReserved_typetok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_typetok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); while (mcLexBuf_currenttoken == mcReserved_identtok) - TypeDeclaration (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + { + TypeDeclaration (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + } /* while */ } else if (mcLexBuf_currenttoken == mcReserved_vartok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_vartok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); while (mcLexBuf_currenttoken == mcReserved_identtok) { @@ -6045,16 +6392,21 @@ static void Declaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st } else if (mcLexBuf_currenttoken == mcReserved_proceduretok) { + /* avoid dangling else. */ ProcedureDeclaration (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_moduletok) { + /* avoid dangling else. */ ModuleDeclaration (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: MODULE PROCEDURE VAR TYPE CONST", 49); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: MODULE PROCEDURE VAR TYPE CONST", 49); + } } @@ -6075,7 +6427,9 @@ static void DefFormalParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_periodperiodperiodtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); decl_paramEnter (curproc); if ((mcLexBuf_currenttoken == mcReserved_lsbratok) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_periodperiodperiodtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - DefMultiFPSection (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + { + DefMultiFPSection (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_colontok-mcReserved_eoftok))), stopset1, stopset2); decl_paramLeave (curproc); FormalReturn (stopset0, stopset1, stopset2); @@ -6093,7 +6447,9 @@ static void DefFormalParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf static void DefMultiFPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken == mcReserved_lsbratok) || (mcLexBuf_currenttoken == mcReserved_periodperiodperiodtok)) - DefExtendedFP (stopset0, stopset1, stopset2); + { + DefExtendedFP (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok))))) != 0))) { /* avoid dangling else. */ @@ -6105,7 +6461,10 @@ static void DefMultiFPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt } } else - ErrorArray ((char *) "expecting one of: identifier VAR ... [", 38); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: identifier VAR ... [", 38); + } } @@ -6126,7 +6485,9 @@ static void FormalParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_periodperiodperiodtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); decl_paramEnter (curproc); if ((mcLexBuf_currenttoken == mcReserved_lsbratok) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_periodperiodperiodtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - MultiFPSection (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + { + MultiFPSection (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_colontok-mcReserved_eoftok))), stopset1, stopset2); decl_paramLeave (curproc); FormalReturn (stopset0, stopset1, stopset2); @@ -6144,7 +6505,9 @@ static void FormalParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto static void MultiFPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken == mcReserved_lsbratok) || (mcLexBuf_currenttoken == mcReserved_periodperiodperiodtok)) - ExtendedFP (stopset0, stopset1, stopset2); + { + ExtendedFP (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok))))) != 0))) { /* avoid dangling else. */ @@ -6156,7 +6519,10 @@ static void MultiFPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 } } else - ErrorArray ((char *) "expecting one of: identifier VAR ... [", 38); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: identifier VAR ... [", 38); + } } @@ -6171,11 +6537,19 @@ static void MultiFPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void FPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_identtok) - NonVarFPSection (stopset0, stopset1, stopset2); + { + NonVarFPSection (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_vartok) - VarFPSection (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + VarFPSection (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: VAR identifier", 32); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: VAR identifier", 32); + } } @@ -6192,14 +6566,20 @@ static void FPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop static void DefExtendedFP (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_lsbratok) - DefOptArg (stopset0, stopset1, stopset2); + { + DefOptArg (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_periodperiodperiodtok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); decl_addParameter (curproc, decl_makeVarargs ()); } else - ErrorArray ((char *) "expecting one of: ... [", 23); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ... [", 23); + } } @@ -6214,11 +6594,19 @@ static void DefExtendedFP (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void ExtendedFP (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_lsbratok) - OptArg (stopset0, stopset1, stopset2); + { + OptArg (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_periodperiodperiodtok) - Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: ... [", 23); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ... [", 23); + } } @@ -6419,13 +6807,19 @@ static void ModuleDeclaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt Expect ((mcReserved_toktype) mcReserved_moduletok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_lsbratok) - Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + { + Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); while (((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok))))) != 0))) - Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + { + Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + } /* while */ if (mcLexBuf_currenttoken == mcReserved_exporttok) - Export (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + { + Export (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + } Block (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0, stopset1, stopset2); } @@ -6467,13 +6861,20 @@ static void Export (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset } else if (mcLexBuf_currenttoken == mcReserved_unqualifiedtok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_unqualifiedtok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); IdentList (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_identtok) - IdentList (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + { + /* avoid dangling else. */ + IdentList (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: identifier UNQUALIFIED QUALIFIED", 50); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: identifier UNQUALIFIED QUALIFIED", 50); + } Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2); } @@ -6572,11 +6973,19 @@ static void WithoutFromImport (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt static void Import (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_fromtok) - FromImport (stopset0, stopset1, stopset2); + { + FromImport (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_importtok) - WithoutFromImport (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + WithoutFromImport (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: IMPORT FROM", 29); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: IMPORT FROM", 29); + } } @@ -6617,12 +7026,18 @@ static void DefinitionModule (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto decl_enterScope (curmodule); decl_resetEnumPos (curmodule); while (((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok))))) != 0))) - Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + { + Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + } /* while */ if (mcLexBuf_currenttoken == mcReserved_exporttok) - Export (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + { + Export (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + } while ((((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))))) != 0))) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok))))) != 0)))) - Definition (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + { + Definition (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + } /* while */ Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok))), stopset1, stopset2); @@ -6664,16 +7079,22 @@ static void PushQualident (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok))), stopset1, stopset2); typeExp = push (decl_lookupSym (curident)); if (typeExp == NULL) - mcMetaError_metaError1 ((char *) "the symbol {%1k} is not visible in this scope (or any other nested scope)", 73, (unsigned char *) &curident, (sizeof (curident)-1)); + { + mcMetaError_metaError1 ((char *) "the symbol {%1k} is not visible in this scope (or any other nested scope)", 73, (unsigned char *) &curident, (sizeof (curident)-1)); + } if (mcLexBuf_currenttoken == mcReserved_periodtok) { Expect ((mcReserved_toktype) mcReserved_periodtok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); if (! (decl_isDef (typeExp))) - ErrorArray ((char *) "the first component of this qualident must be a definition module", 65); + { + ErrorArray ((char *) "the first component of this qualident must be a definition module", 65); + } Ident (stopset0, stopset1, stopset2); typeExp = replace (decl_lookupInScope (typeExp, curident)); if (typeExp == NULL) - ErrorArray ((char *) "identifier not found in definition module", 41); + { + ErrorArray ((char *) "identifier not found in definition module", 41); + } } } @@ -6797,13 +7218,24 @@ static void SimpleType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto d = depth (); if (mcLexBuf_currenttoken == mcReserved_identtok) - TypeEquiv (stopset0, stopset1, stopset2); + { + TypeEquiv (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lparatok) - Enumeration (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Enumeration (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lsbratok) - SubrangeType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SubrangeType (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: [ ( identifier", 32); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: [ ( identifier", 32); + } mcDebug_assert (d == ((depth ())-1)); } @@ -6820,19 +7252,39 @@ static void SimpleType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto static void Type (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_identtok)) - SimpleType (stopset0, stopset1, stopset2); + { + SimpleType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_arraytok) - ArrayType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ArrayType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_recordtok) - RecordType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + RecordType (stopset0, stopset1, stopset2); + } else if ((((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_packedsettok-mcReserved_arraytok)) | (1 << (mcReserved_oftok-mcReserved_arraytok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_settok)) - SetType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SetType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_pointertok) - PointerType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + PointerType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_proceduretok) - ProcedureType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ProcedureType (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: PROCEDURE POINTER SET PACKEDSET OF RECORD ARRAY identifier ( [", 80); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: PROCEDURE POINTER SET PACKEDSET OF RECORD ARRAY identifier ( [", 80); + } } @@ -6855,9 +7307,12 @@ static void TypeDeclaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok)) | (1 << (mcReserved_equaltok-mcReserved_eoftok))), stopset1, stopset2); typeDes = decl_lookupSym (curident); if (mcLexBuf_currenttoken == mcReserved_semicolontok) - Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + { + Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + } else if (mcLexBuf_currenttoken == mcReserved_equaltok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_equaltok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_pointertok-mcReserved_arraytok)) | (1 << (mcReserved_packedsettok-mcReserved_arraytok)) | (1 << (mcReserved_oftok-mcReserved_arraytok)) | (1 << (mcReserved_arraytok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_settok-mcReserved_recordtok)) | (1 << (mcReserved_recordtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); Type (stopset0|(SetOfStop0) ((1 << (mcReserved_ldirectivetok-mcReserved_eoftok)) | (1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); decl_putType (typeDes, pop ()); @@ -6865,7 +7320,10 @@ static void TypeDeclaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); } else - ErrorArray ((char *) "expecting one of: = ;", 21); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: = ;", 21); + } } /* while */ } @@ -6896,13 +7354,17 @@ static void Definition (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto } else if (mcLexBuf_currenttoken == mcReserved_typetok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_typetok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); while (mcLexBuf_currenttoken == mcReserved_identtok) - TypeDeclaration (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + { + TypeDeclaration (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + } /* while */ } else if (mcLexBuf_currenttoken == mcReserved_vartok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_vartok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); while (mcLexBuf_currenttoken == mcReserved_identtok) { @@ -6913,11 +7375,15 @@ static void Definition (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto } else if (mcLexBuf_currenttoken == mcReserved_proceduretok) { + /* avoid dangling else. */ DefProcedureHeading (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: PROCEDURE VAR TYPE CONST", 42); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: PROCEDURE VAR TYPE CONST", 42); + } } @@ -6933,7 +7399,9 @@ static void AsmStatement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 s { Expect ((mcReserved_toktype) mcReserved_asmtok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_volatiletok-mcReserved_recordtok)))); if (mcLexBuf_currenttoken == mcReserved_volatiletok) - Expect ((mcReserved_toktype) mcReserved_volatiletok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_volatiletok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)))); AsmOperands (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); @@ -6952,7 +7420,9 @@ static void AsmOperands (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st { string (stopset0|(SetOfStop0) ((1 << (mcReserved_colontok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_colontok) - AsmOperandSpec (stopset0, stopset1, stopset2); + { + AsmOperandSpec (stopset0, stopset1, stopset2); + } } @@ -6995,7 +7465,9 @@ static void AsmOperandSpec (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void AsmList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken == mcReserved_lsbratok) || (mcLexBuf_currenttoken == mcReserved_stringtok)) - AsmElement (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); + { + AsmElement (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); + } while (mcLexBuf_currenttoken == mcReserved_commatok) { Expect ((mcReserved_toktype) mcReserved_commatok, stopset0|(SetOfStop0) ((1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)))); @@ -7032,7 +7504,9 @@ static void NamedOperand (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 s static void AsmOperandName (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_lsbratok) - NamedOperand (stopset0, stopset1, stopset2); + { + NamedOperand (stopset0, stopset1, stopset2); + } } @@ -7065,7 +7539,9 @@ static void AsmElement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto static void TrashList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_stringtok) - string (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); + { + string (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); + } while (mcLexBuf_currenttoken == mcReserved_commatok) { Expect ((mcReserved_toktype) mcReserved_commatok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)))); --- a/src/gcc/gm2/mc-boot/Gmcp4.c +++ b/src/gcc/gm2/mc-boot/Gmcp4.c @@ -2225,12 +2225,16 @@ static void importInto (decl_node m, nameKey_Name name, decl_node current) mcDebug_assert (((decl_isDef (current)) || (decl_isModule (current))) || (decl_isImp (current))); s = decl_lookupExported (m, name); if (s == NULL) - mcMetaError_metaError2 ((char *) "{%1k} was not exported from definition module {%2a}", 51, (unsigned char *) &name, (sizeof (name)-1), (unsigned char *) &m, (sizeof (m)-1)); + { + mcMetaError_metaError2 ((char *) "{%1k} was not exported from definition module {%2a}", 51, (unsigned char *) &name, (sizeof (name)-1), (unsigned char *) &m, (sizeof (m)-1)); + } else { o = decl_import (current, s); if (s != o) - mcMetaError_metaError2 ((char *) "{%1ad} cannot be imported into the current module as it causes a name clash with {%2ad}", 87, (unsigned char *) &s, (sizeof (s)-1), (unsigned char *) &o, (sizeof (o)-1)); + { + mcMetaError_metaError2 ((char *) "{%1ad} cannot be imported into the current module as it causes a name clash with {%2ad}", 87, (unsigned char *) &s, (sizeof (s)-1), (unsigned char *) &o, (sizeof (o)-1)); + } } } @@ -2722,9 +2726,13 @@ static DynamicStrings_String DescribeStop (SetOfStop0 stopset0, SetOfStop1 stops message = DynamicStrings_KillString (message); } else if (n == 1) - str = DynamicStrings_ConCat (message, DynamicStrings_Mark (DynamicStrings_InitString ((char *) " missing ", 9))); + { + /* avoid dangling else. */ + str = DynamicStrings_ConCat (message, DynamicStrings_Mark (DynamicStrings_InitString ((char *) " missing ", 9))); + } else { + /* avoid dangling else. */ str = DynamicStrings_ConCat (DynamicStrings_InitString ((char *) " expecting one of", 17), message); message = DynamicStrings_KillString (message); } @@ -3120,17 +3128,23 @@ static void SyntaxError (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st { DescribeError (stopset0, stopset1, stopset2); if (Debugging) - mcPrintf_printf0 ((char *) "\\nskipping token *** ", 21); + { + mcPrintf_printf0 ((char *) "\\nskipping token *** ", 21); + } /* yes the ORD(currenttoken) looks ugly, but it is *much* safer than using currenttoken= 32) && (((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || ((((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) - mcLexBuf_getToken (); + while (! (((( ((unsigned int) (mcLexBuf_currenttoken)) < 32) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & (stopset0)) != 0))) || ((( ((unsigned int) (mcLexBuf_currenttoken)) >= 32) && ( ((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || (( ((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) + { + mcLexBuf_getToken (); + } if (Debugging) - mcPrintf_printf0 ((char *) " ***\\n", 6); + { + mcPrintf_printf0 ((char *) " ***\\n", 6); + } } @@ -3142,8 +3156,10 @@ static void SyntaxCheck (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st { /* and again (see above re: ORD) */ - if (! ((((((unsigned int) (mcLexBuf_currenttoken)) < 32) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & (stopset0)) != 0))) || (((((unsigned int) (mcLexBuf_currenttoken)) >= 32) && (((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || ((((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) - SyntaxError (stopset0, stopset1, stopset2); + if (! (((( ((unsigned int) (mcLexBuf_currenttoken)) < 32) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & (stopset0)) != 0))) || ((( ((unsigned int) (mcLexBuf_currenttoken)) >= 32) && ( ((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || (( ((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) + { + SyntaxError (stopset0, stopset1, stopset2); + } } @@ -3161,12 +3177,20 @@ static void WarnMissingToken (mcReserved_toktype t) s0 = (SetOfStop0) 0; s1 = (SetOfStop1) 0; s2 = (SetOfStop2) 0; - if (((unsigned int) (t)) < 32) - s0 = (SetOfStop0) ((1 << (t-mcReserved_eoftok))); - else if (((unsigned int) (t)) < 64) - s1 = (SetOfStop1) ((1 << (t-mcReserved_arraytok))); + if ( ((unsigned int) (t)) < 32) + { + s0 = (SetOfStop0) ((1 << (t-mcReserved_eoftok))); + } + else if ( ((unsigned int) (t)) < 64) + { + /* avoid dangling else. */ + s1 = (SetOfStop1) ((1 << (t-mcReserved_arraytok))); + } else - s2 = (SetOfStop2) ((1 << (t-mcReserved_recordtok))); + { + /* avoid dangling else. */ + s2 = (SetOfStop2) ((1 << (t-mcReserved_recordtok))); + } str = DescribeStop (s0, s1, s2); str = DynamicStrings_ConCat (DynamicStrings_InitString ((char *) "syntax error,", 13), DynamicStrings_Mark (str)); mcError_errorStringAt (str, mcLexBuf_getTokenNo ()); @@ -3183,7 +3207,9 @@ static void MissingToken (mcReserved_toktype t) if ((((t != mcReserved_identtok) && (t != mcReserved_integertok)) && (t != mcReserved_realtok)) && (t != mcReserved_stringtok)) { if (Debugging) - mcPrintf_printf0 ((char *) "inserting token\\n", 17); + { + mcPrintf_printf0 ((char *) "inserting token\\n", 17); + } mcLexBuf_insertToken (t); } } @@ -3195,14 +3221,16 @@ static void MissingToken (mcReserved_toktype t) static unsigned int CheckAndInsert (mcReserved_toktype t, SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { - if ((((((unsigned int) (t)) < 32) && ((((1 << (t-mcReserved_eoftok)) & (stopset0)) != 0))) || (((((unsigned int) (t)) >= 32) && (((unsigned int) (t)) < 64)) && ((((1 << (t-mcReserved_arraytok)) & (stopset1)) != 0)))) || ((((unsigned int) (t)) >= 64) && ((((1 << (t-mcReserved_recordtok)) & (stopset2)) != 0)))) + if (((( ((unsigned int) (t)) < 32) && ((((1 << (t-mcReserved_eoftok)) & (stopset0)) != 0))) || ((( ((unsigned int) (t)) >= 32) && ( ((unsigned int) (t)) < 64)) && ((((1 << (t-mcReserved_arraytok)) & (stopset1)) != 0)))) || (( ((unsigned int) (t)) >= 64) && ((((1 << (t-mcReserved_recordtok)) & (stopset2)) != 0)))) { WarnMissingToken (t); mcLexBuf_insertTokenAndRewind (t); return TRUE; } else - return FALSE; + { + return FALSE; + } } @@ -3212,10 +3240,14 @@ static unsigned int CheckAndInsert (mcReserved_toktype t, SetOfStop0 stopset0, S static unsigned int InStopSet (mcReserved_toktype t, SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { - if ((((((unsigned int) (t)) < 32) && ((((1 << (t-mcReserved_eoftok)) & (stopset0)) != 0))) || (((((unsigned int) (t)) >= 32) && (((unsigned int) (t)) < 64)) && ((((1 << (t-mcReserved_arraytok)) & (stopset1)) != 0)))) || ((((unsigned int) (t)) >= 64) && ((((1 << (t-mcReserved_recordtok)) & (stopset2)) != 0)))) - return TRUE; + if (((( ((unsigned int) (t)) < 32) && ((((1 << (t-mcReserved_eoftok)) & (stopset0)) != 0))) || ((( ((unsigned int) (t)) >= 32) && ( ((unsigned int) (t)) < 64)) && ((((1 << (t-mcReserved_arraytok)) & (stopset1)) != 0)))) || (( ((unsigned int) (t)) >= 64) && ((((1 << (t-mcReserved_recordtok)) & (stopset2)) != 0)))) + { + return TRUE; + } else - return FALSE; + { + return FALSE; + } } @@ -3231,11 +3263,13 @@ static void PeepToken (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop { /* and again (see above re: ORD) */ - if ((! ((((((unsigned int) (mcLexBuf_currenttoken)) < 32) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & (stopset0)) != 0))) || (((((unsigned int) (mcLexBuf_currenttoken)) >= 32) && (((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || ((((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) && (! (InStopSet ((mcReserved_toktype) mcReserved_identtok, stopset0, stopset1, stopset2)))) - /* SyntaxCheck would fail since currentoken is not part of the stopset + if ((! (((( ((unsigned int) (mcLexBuf_currenttoken)) < 32) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & (stopset0)) != 0))) || ((( ((unsigned int) (mcLexBuf_currenttoken)) >= 32) && ( ((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || (( ((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) && (! (InStopSet ((mcReserved_toktype) mcReserved_identtok, stopset0, stopset1, stopset2)))) + { + /* SyntaxCheck would fail since currentoken is not part of the stopset we check to see whether any of currenttoken might be a commonly omitted token */ - if ((((((((CheckAndInsert ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2)) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rsbratok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rcbratok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_periodtok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_oftok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_commatok, stopset0, stopset1, stopset2))) - {} /* empty. */ + if ((((((((CheckAndInsert ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2)) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rsbratok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rcbratok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_periodtok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_oftok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_commatok, stopset0, stopset1, stopset2))) + {} /* empty. */ + } } @@ -3250,10 +3284,14 @@ static void Expect (mcReserved_toktype t, SetOfStop0 stopset0, SetOfStop1 stopse /* avoid dangling else. */ mcLexBuf_getToken (); if (Pass1) - PeepToken (stopset0, stopset1, stopset2); + { + PeepToken (stopset0, stopset1, stopset2); + } } else - MissingToken (t); + { + MissingToken (t); + } SyntaxCheck (stopset0, stopset1, stopset2); } @@ -3317,11 +3355,19 @@ static void Real (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) static void FileUnit (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_definitiontok) - DefinitionModule (stopset0, stopset1, stopset2); + { + DefinitionModule (stopset0, stopset1, stopset2); + } else if (((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_implementationtok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))))) != 0))) - ImplementationOrProgramModule (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ImplementationOrProgramModule (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: IMPLEMENTATION MODULE DEFINITION", 50); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: IMPLEMENTATION MODULE DEFINITION", 50); + } } @@ -3352,10 +3398,14 @@ static void ProgramModule (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 decl_enterScope (curmodule); decl_resetConstExpPos (curmodule); if (mcLexBuf_currenttoken == mcReserved_lsbratok) - Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + { + Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); while (((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok))))) != 0))) - Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + { + Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + } /* while */ Block (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok))), stopset1, stopset2); @@ -3396,10 +3446,14 @@ static void ImplementationModule (SetOfStop0 stopset0, SetOfStop1 stopset1, SetO decl_enterScope (curmodule); decl_resetConstExpPos (curmodule); if (mcLexBuf_currenttoken == mcReserved_lsbratok) - Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + { + Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); while (((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok))))) != 0))) - Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + { + Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + } /* while */ Block (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok))), stopset1, stopset2); @@ -3422,11 +3476,19 @@ static void ImplementationModule (SetOfStop0 stopset0, SetOfStop1 stopset1, SetO static void ImplementationOrProgramModule (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_implementationtok) - ImplementationModule (stopset0, stopset1, stopset2); + { + ImplementationModule (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_moduletok) - ProgramModule (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ProgramModule (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: MODULE IMPLEMENTATION", 39); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: MODULE IMPLEMENTATION", 39); + } } @@ -3441,11 +3503,19 @@ static void ImplementationOrProgramModule (SetOfStop0 stopset0, SetOfStop1 stops static void Number (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_integertok) - Integer (stopset0, stopset1, stopset2); + { + Integer (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_realtok) - Real (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Real (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: real number integer number", 44); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: real number integer number", 44); + } } @@ -3565,23 +3635,49 @@ static void ConstExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop static void Relation (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_equaltok) - Expect ((mcReserved_toktype) mcReserved_equaltok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_equaltok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_hashtok) - Expect ((mcReserved_toktype) mcReserved_hashtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_hashtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lessgreatertok) - Expect ((mcReserved_toktype) mcReserved_lessgreatertok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_lessgreatertok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lesstok) - Expect ((mcReserved_toktype) mcReserved_lesstok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_lesstok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lessequaltok) - Expect ((mcReserved_toktype) mcReserved_lessequaltok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_lessequaltok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_greatertok) - Expect ((mcReserved_toktype) mcReserved_greatertok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_greatertok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_greaterequaltok) - Expect ((mcReserved_toktype) mcReserved_greaterequaltok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_greaterequaltok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_intok) - Expect ((mcReserved_toktype) mcReserved_intok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_intok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: IN >= > <= < <> # =", 37); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: IN >= > <= < <> # =", 37); + } } @@ -3648,14 +3744,21 @@ static void UnaryOrConstTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto } else if (mcLexBuf_currenttoken == mcReserved_minustok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_minustok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); ConstTerm (stopset0, stopset1, stopset2); n = push (decl_makeUnaryTok ((mcReserved_toktype) mcReserved_minustok, pop ())); } else if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - ConstTerm (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstTerm (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: NOT ( integer number real number __ATTRIBUTE__ { string identifier - +", 88); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: NOT ( integer number real number __ATTRIBUTE__ { string identifier - +", 88); + } } @@ -3670,13 +3773,24 @@ static void UnaryOrConstTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto static void AddOperator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_plustok) - Expect ((mcReserved_toktype) mcReserved_plustok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_plustok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_minustok) - Expect ((mcReserved_toktype) mcReserved_minustok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_minustok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_ortok) - Expect ((mcReserved_toktype) mcReserved_ortok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_ortok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: OR - +", 24); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: OR - +", 24); + } } @@ -3729,21 +3843,44 @@ static void ConstTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop static void MulOperator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_timestok) - Expect ((mcReserved_toktype) mcReserved_timestok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_timestok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_dividetok) - Expect ((mcReserved_toktype) mcReserved_dividetok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_dividetok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_divtok) - Expect ((mcReserved_toktype) mcReserved_divtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_divtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_modtok) - Expect ((mcReserved_toktype) mcReserved_modtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_modtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_remtok) - Expect ((mcReserved_toktype) mcReserved_remtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_remtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_andtok) - Expect ((mcReserved_toktype) mcReserved_andtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_andtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_ambersandtok) - Expect ((mcReserved_toktype) mcReserved_ambersandtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_ambersandtok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: & AND REM MOD DIV / *", 39); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: & AND REM MOD DIV / *", 39); + } } @@ -3782,23 +3919,41 @@ static void NotConstFactor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void ConstFactor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok))))) != 0))) - Number (stopset0, stopset1, stopset2); + { + Number (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_stringtok) - ConstString (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstString (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken == mcReserved_lcbratok) || (mcLexBuf_currenttoken == mcReserved_identtok)) - ConstSetOrQualidentOrFunction (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstSetOrQualidentOrFunction (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lparatok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); ConstExpression (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_nottok) - NotConstFactor (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + NotConstFactor (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_attributetok) - ConstAttribute (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstAttribute (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: __ATTRIBUTE__ NOT ( { identifier string integer number real number", 84); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: __ATTRIBUTE__ NOT ( { identifier string integer number real number", 84); + } } @@ -3924,7 +4079,9 @@ static void ConstConstructor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto Expect ((mcReserved_toktype) mcReserved_lcbratok, stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); n = push (decl_makeSetValue ()); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - ConstArraySetRecordValue (stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok))), stopset1, stopset2); + { + ConstArraySetRecordValue (stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rcbratok, stopset0, stopset1, stopset2); } @@ -3992,6 +4149,7 @@ static void ConstSetOrQualidentOrFunction (SetOfStop0 stopset0, SetOfStop1 stops } else if (mcLexBuf_currenttoken == mcReserved_lparatok) { + /* avoid dangling else. */ ConstActualParameters (stopset0, stopset1, stopset2); p = pop (); q = pop (); @@ -3999,7 +4157,10 @@ static void ConstSetOrQualidentOrFunction (SetOfStop0 stopset0, SetOfStop1 stops mcDebug_assert ((d+1) == (depth ())); } else - ErrorArray ((char *) "expecting one of: ( {", 21); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ( {", 21); + } } /* end of optional [ | ] expression */ } @@ -4033,7 +4194,9 @@ static void ConstActualParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, Set Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); n = push (decl_makeExpList ()); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - ConstExpList (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + { + ConstExpList (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); mcDebug_assert (decl_isExpList (peep ())); } @@ -4129,6 +4292,7 @@ static void ConstAttributeExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, } else if (mcLexBuf_currenttoken == mcReserved_lesstok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_lesstok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Qualident (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_commatok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); @@ -4136,7 +4300,10 @@ static void ConstAttributeExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, Expect ((mcReserved_toktype) mcReserved_greatertok, stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: < identifier", 30); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: < identifier", 30); + } } @@ -4167,7 +4334,9 @@ static void ByteAlignment (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void OptAlignmentExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_lparatok) - AlignmentExpression (stopset0, stopset1, stopset2); + { + AlignmentExpression (stopset0, stopset1, stopset2); + } } @@ -4198,7 +4367,9 @@ static void AlignmentExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf static void Alignment (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_ldirectivetok) - ByteAlignment (stopset0, stopset1, stopset2); + { + ByteAlignment (stopset0, stopset1, stopset2); + } } @@ -4312,7 +4483,9 @@ static void RecordType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto { Expect ((mcReserved_toktype) mcReserved_recordtok, stopset0|(SetOfStop0) ((1 << (mcReserved_ldirectivetok-mcReserved_eoftok)) | (1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_casetok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); if (mcLexBuf_currenttoken == mcReserved_ldirectivetok) - DefaultRecordAttributes (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_casetok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + { + DefaultRecordAttributes (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_casetok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + } FieldListSequence (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok))), stopset2); Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2); } @@ -4441,7 +4614,9 @@ static void FieldListSequence (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt static void FieldListStatement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken == mcReserved_casetok) || (mcLexBuf_currenttoken == mcReserved_identtok)) - FieldList (stopset0, stopset1, stopset2); + { + FieldList (stopset0, stopset1, stopset2); + } } @@ -4466,6 +4641,7 @@ static void FieldList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop } else if (mcLexBuf_currenttoken == mcReserved_casetok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_casetok, stopset0|(SetOfStop0) ((1 << (mcReserved_colontok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); CaseTag (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2); Expect ((mcReserved_toktype) mcReserved_oftok, stopset0|(SetOfStop0) ((1 << (mcReserved_bartok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_elsetok-mcReserved_arraytok)) | (1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); @@ -4484,7 +4660,10 @@ static void FieldList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: CASE identifier", 33); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: CASE identifier", 33); + } } @@ -4501,9 +4680,13 @@ static void FieldList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop static void TagIdent (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_identtok) - Ident (stopset0, stopset1, stopset2); + { + Ident (stopset0, stopset1, stopset2); + } else - curident = nameKey_NulName; + { + curident = nameKey_NulName; + } } @@ -4595,11 +4778,19 @@ static void VarientCaseLabels (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt static void SetType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_settok) - Expect ((mcReserved_toktype) mcReserved_settok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2); + { + Expect ((mcReserved_toktype) mcReserved_settok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_packedsettok) - Expect ((mcReserved_toktype) mcReserved_packedsettok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_packedsettok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2); + } else - ErrorArray ((char *) "expecting one of: PACKEDSET SET", 31); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: PACKEDSET SET", 31); + } Expect ((mcReserved_toktype) mcReserved_oftok, stopset0|(SetOfStop0) ((1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); SimpleType (stopset0, stopset1, stopset2); } @@ -4633,7 +4824,9 @@ static void ProcedureType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 { Expect ((mcReserved_toktype) mcReserved_proceduretok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_lparatok) - FormalTypeList (stopset0, stopset1, stopset2); + { + FormalTypeList (stopset0, stopset1, stopset2); + } } @@ -4656,12 +4849,16 @@ static void FormalTypeList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 } else if ((mcLexBuf_currenttoken == mcReserved_arraytok) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_periodperiodperiodtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) { + /* avoid dangling else. */ ProcedureParameters (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_colontok-mcReserved_eoftok))), stopset1, stopset2); FormalReturn (stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: VAR ... ARRAY identifier )", 44); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: VAR ... ARRAY identifier )", 44); + } } @@ -4700,9 +4897,15 @@ static void OptReturnType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 Expect ((mcReserved_toktype) mcReserved_rsbratok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_identtok) - Qualident (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Qualident (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: identifier [", 30); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: identifier [", 30); + } } @@ -4738,16 +4941,25 @@ static void ProcedureParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf static void ProcedureParameter (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_periodperiodperiodtok) - Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_vartok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_vartok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_arraytok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); FormalType (stopset0, stopset1, stopset2); } else if ((mcLexBuf_currenttoken == mcReserved_arraytok) || (mcLexBuf_currenttoken == mcReserved_identtok)) - FormalType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + FormalType (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: ARRAY identifier VAR ...", 42); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ARRAY identifier VAR ...", 42); + } } @@ -4827,7 +5039,9 @@ static void Designator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto { Qualident (stopset0|(SetOfStop0) ((1 << (mcReserved_uparrowtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_periodtok-mcReserved_eoftok))), stopset1, stopset2); while ((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))))) != 0))) - SubDesignator (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))), stopset1, stopset2); + { + SubDesignator (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))), stopset1, stopset2); + } /* while */ } @@ -4850,14 +5064,21 @@ static void SubDesignator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 } else if (mcLexBuf_currenttoken == mcReserved_lsbratok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_lsbratok, stopset0|(SetOfStop0) ((1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); ArrayExpList (stopset0|(SetOfStop0) ((1 << (mcReserved_rsbratok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rsbratok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_uparrowtok) - Expect ((mcReserved_toktype) mcReserved_uparrowtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_uparrowtok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: ^ [ .", 23); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ^ [ .", 23); + } } @@ -4957,13 +5178,20 @@ static void UnaryOrTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st } else if (mcLexBuf_currenttoken == mcReserved_minustok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_minustok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); Term (stopset0, stopset1, stopset2); } else if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - Term (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Term (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: NOT ( string integer number real number identifier { - +", 74); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: NOT ( string integer number real number identifier { - +", 74); + } } @@ -4999,29 +5227,50 @@ static void Term (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) static void Factor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok))))) != 0))) - Number (stopset0, stopset1, stopset2); + { + Number (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_stringtok) - string (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + string (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken == mcReserved_lcbratok) || (mcLexBuf_currenttoken == mcReserved_identtok)) - SetOrDesignatorOrFunction (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SetOrDesignatorOrFunction (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lparatok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); Expression (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_nottok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_nottok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - Factor (stopset0, stopset1, stopset2); + { + Factor (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_attributetok) - ConstAttribute (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstAttribute (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: __ATTRIBUTE__ real number integer number string ( NOT { identifier", 84); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: __ATTRIBUTE__ real number integer number string ( NOT { identifier", 84); + } } else - ErrorArray ((char *) "expecting one of: NOT ( identifier { string integer number real number", 70); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: NOT ( identifier { string integer number real number", 70); + } } @@ -5101,7 +5350,9 @@ static void Constructor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st { Expect ((mcReserved_toktype) mcReserved_lcbratok, stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - ArraySetRecordValue (stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok))), stopset1, stopset2); + { + ArraySetRecordValue (stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rcbratok, stopset0, stopset1, stopset2); } @@ -5127,23 +5378,36 @@ static void SetOrDesignatorOrFunction (SetOfStop0 stopset0, SetOfStop1 stopset1, /* avoid gcc warning by using compound statement even if not strictly necessary. */ /* seen optional [ | ] expression */ if (mcLexBuf_currenttoken == mcReserved_lcbratok) - Constructor (stopset0, stopset1, stopset2); + { + Constructor (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_periodtok-mcReserved_eoftok))))) != 0))) { /* avoid dangling else. */ SimpleDes (stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_lparatok) - ActualParameters (stopset0, stopset1, stopset2); + { + ActualParameters (stopset0, stopset1, stopset2); + } } else - ErrorArray ((char *) "expecting one of: ( ^ [ . {", 27); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ( ^ [ . {", 27); + } } /* end of optional [ | ] expression */ } else if (mcLexBuf_currenttoken == mcReserved_lcbratok) - Constructor (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Constructor (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: { identifier", 30); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: { identifier", 30); + } } @@ -5158,7 +5422,9 @@ static void SetOrDesignatorOrFunction (SetOfStop0 stopset0, SetOfStop1 stopset1, static void SimpleDes (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { while ((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))))) != 0))) - SubDesignator (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))), stopset1, stopset2); + { + SubDesignator (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))), stopset1, stopset2); + } /* while */ } @@ -5175,7 +5441,9 @@ static void ActualParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto { Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - ExpList (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + { + ExpList (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); } @@ -5206,7 +5474,9 @@ static void ReturnStatement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop { Expect ((mcReserved_toktype) mcReserved_returntok, stopset0|(SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - Expression (stopset0, stopset1, stopset2); + { + Expression (stopset0, stopset1, stopset2); + } } @@ -5231,31 +5501,69 @@ static void Statement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop /* avoid gcc warning by using compound statement even if not strictly necessary. */ /* seen optional [ | ] expression */ if (mcLexBuf_currenttoken == mcReserved_identtok) - AssignmentOrProcedureCall (stopset0, stopset1, stopset2); + { + AssignmentOrProcedureCall (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_iftok) - IfStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + IfStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_casetok) - CaseStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + CaseStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_whiletok) - WhileStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + WhileStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_repeattok) - RepeatStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + RepeatStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_looptok) - LoopStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + LoopStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_fortok) - ForStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ForStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_withtok) - WithStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + WithStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_asmtok) - AsmStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + AsmStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_exittok) - ExitStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ExitStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_returntok) - ReturnStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ReturnStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_retrytok) - RetryStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + RetryStatement (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: RETRY RETURN EXIT ASM WITH FOR LOOP REPEAT WHILE CASE IF identifier", 85); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: RETRY RETURN EXIT ASM WITH FOR LOOP REPEAT WHILE CASE IF identifier", 85); + } } /* end of optional [ | ] expression */ } @@ -5296,7 +5604,10 @@ static void AssignmentOrProcedureCall (SetOfStop0 stopset0, SetOfStop1 stopset1, Expression (stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_lparatok) - ActualParameters (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ActualParameters (stopset0, stopset1, stopset2); + } /* epsilon */ } @@ -5390,15 +5701,21 @@ static void CaseStatement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void CaseEndStatement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_endtok) - Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_elsetok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_elsetok, stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_exittok-mcReserved_arraytok)) | (1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_iftok-mcReserved_arraytok)) | (1 << (mcReserved_casetok-mcReserved_arraytok)) | (1 << (mcReserved_looptok-mcReserved_arraytok)) | (1 << (mcReserved_fortok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_returntok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_whiletok-mcReserved_recordtok)) | (1 << (mcReserved_repeattok-mcReserved_recordtok)) | (1 << (mcReserved_withtok-mcReserved_recordtok)) | (1 << (mcReserved_asmtok-mcReserved_recordtok)) | (1 << (mcReserved_retrytok-mcReserved_recordtok)))); StatementSequence (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok))), stopset2); Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: ELSE END", 26); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ELSE END", 26); + } } @@ -5645,9 +5962,15 @@ static void DefineBuiltinProcedure (SetOfStop0 stopset0, SetOfStop1 stopset1, Se Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_inlinetok) - Expect ((mcReserved_toktype) mcReserved_inlinetok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_inlinetok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: __INLINE__ __ATTRIBUTE__", 42); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: __INLINE__ __ATTRIBUTE__", 42); + } } /* end of optional [ | ] expression */ } @@ -5669,7 +5992,9 @@ static void ProcedureHeading (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto DefineBuiltinProcedure (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); ProcedureIdent (stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_lparatok) - FormalParameters (stopset0, stopset1, stopset2); + { + FormalParameters (stopset0, stopset1, stopset2); + } } @@ -5688,11 +6013,19 @@ static void Builtin (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopse /* avoid gcc warning by using compound statement even if not strictly necessary. */ /* seen optional [ | ] expression */ if (mcLexBuf_currenttoken == mcReserved_builtintok) - Expect ((mcReserved_toktype) mcReserved_builtintok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_builtintok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_inlinetok) - Expect ((mcReserved_toktype) mcReserved_inlinetok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_inlinetok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: __INLINE__ __BUILTIN__", 40); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: __INLINE__ __BUILTIN__", 40); + } } /* end of optional [ | ] expression */ } @@ -5713,7 +6046,9 @@ static void DefProcedureHeading (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf Builtin (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); DefProcedureIdent (stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_lparatok) - DefFormalParameters (stopset0, stopset1, stopset2); + { + DefFormalParameters (stopset0, stopset1, stopset2); + } } @@ -5729,7 +6064,9 @@ static void DefProcedureHeading (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf static void ProcedureBlock (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { while ((((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))))) != 0))) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok))))) != 0)))) - Declaration (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + { + Declaration (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + } /* while */ if (mcLexBuf_currenttoken == mcReserved_begintok) { @@ -5751,7 +6088,9 @@ static void ProcedureBlock (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void Block (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { while ((((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))))) != 0))) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok))))) != 0)))) - Declaration (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + { + Declaration (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + } /* while */ InitialBlock (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok))), stopset2); FinalBlock (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok))), stopset2); @@ -5906,13 +6245,17 @@ static void Declaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st } else if (mcLexBuf_currenttoken == mcReserved_typetok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_typetok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); while (mcLexBuf_currenttoken == mcReserved_identtok) - TypeDeclaration (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + { + TypeDeclaration (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + } /* while */ } else if (mcLexBuf_currenttoken == mcReserved_vartok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_vartok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); while (mcLexBuf_currenttoken == mcReserved_identtok) { @@ -5923,16 +6266,21 @@ static void Declaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st } else if (mcLexBuf_currenttoken == mcReserved_proceduretok) { + /* avoid dangling else. */ ProcedureDeclaration (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_moduletok) { + /* avoid dangling else. */ ModuleDeclaration (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: MODULE PROCEDURE VAR TYPE CONST", 49); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: MODULE PROCEDURE VAR TYPE CONST", 49); + } } @@ -5953,7 +6301,9 @@ static void DefFormalParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_periodperiodperiodtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); decl_paramEnter (curproc); if ((mcLexBuf_currenttoken == mcReserved_lsbratok) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_periodperiodperiodtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - DefMultiFPSection (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + { + DefMultiFPSection (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_colontok-mcReserved_eoftok))), stopset1, stopset2); decl_paramLeave (curproc); FormalReturn (stopset0, stopset1, stopset2); @@ -5971,7 +6321,9 @@ static void DefFormalParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf static void DefMultiFPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken == mcReserved_lsbratok) || (mcLexBuf_currenttoken == mcReserved_periodperiodperiodtok)) - DefExtendedFP (stopset0, stopset1, stopset2); + { + DefExtendedFP (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok))))) != 0))) { /* avoid dangling else. */ @@ -5983,7 +6335,10 @@ static void DefMultiFPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt } } else - ErrorArray ((char *) "expecting one of: identifier VAR ... [", 38); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: identifier VAR ... [", 38); + } } @@ -6004,7 +6359,9 @@ static void FormalParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_periodperiodperiodtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); decl_paramEnter (curproc); if ((mcLexBuf_currenttoken == mcReserved_lsbratok) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_periodperiodperiodtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - MultiFPSection (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + { + MultiFPSection (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_colontok-mcReserved_eoftok))), stopset1, stopset2); decl_paramLeave (curproc); FormalReturn (stopset0, stopset1, stopset2); @@ -6022,7 +6379,9 @@ static void FormalParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto static void MultiFPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken == mcReserved_lsbratok) || (mcLexBuf_currenttoken == mcReserved_periodperiodperiodtok)) - ExtendedFP (stopset0, stopset1, stopset2); + { + ExtendedFP (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok))))) != 0))) { /* avoid dangling else. */ @@ -6034,7 +6393,10 @@ static void MultiFPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 } } else - ErrorArray ((char *) "expecting one of: identifier VAR ... [", 38); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: identifier VAR ... [", 38); + } } @@ -6049,11 +6411,19 @@ static void MultiFPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void FPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_identtok) - NonVarFPSection (stopset0, stopset1, stopset2); + { + NonVarFPSection (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_vartok) - VarFPSection (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + VarFPSection (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: VAR identifier", 32); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: VAR identifier", 32); + } } @@ -6068,11 +6438,19 @@ static void FPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop static void DefExtendedFP (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_lsbratok) - DefOptArg (stopset0, stopset1, stopset2); + { + DefOptArg (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_periodperiodperiodtok) - Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: ... [", 23); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ... [", 23); + } } @@ -6087,11 +6465,19 @@ static void DefExtendedFP (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void ExtendedFP (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_lsbratok) - OptArg (stopset0, stopset1, stopset2); + { + OptArg (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_periodperiodperiodtok) - Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: ... [", 23); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ... [", 23); + } } @@ -6207,13 +6593,19 @@ static void ModuleDeclaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt Expect ((mcReserved_toktype) mcReserved_moduletok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_lsbratok) - Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + { + Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); while (((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok))))) != 0))) - Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + { + Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + } /* while */ if (mcLexBuf_currenttoken == mcReserved_exporttok) - Export (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + { + Export (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + } Block (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0, stopset1, stopset2); } @@ -6255,13 +6647,20 @@ static void Export (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset } else if (mcLexBuf_currenttoken == mcReserved_unqualifiedtok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_unqualifiedtok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); IdentList (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_identtok) - IdentList (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + { + /* avoid dangling else. */ + IdentList (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: identifier UNQUALIFIED QUALIFIED", 50); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: identifier UNQUALIFIED QUALIFIED", 50); + } Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2); } @@ -6351,11 +6750,19 @@ static void WithoutFromImport (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt static void Import (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_fromtok) - FromImport (stopset0, stopset1, stopset2); + { + FromImport (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_importtok) - WithoutFromImport (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + WithoutFromImport (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: IMPORT FROM", 29); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: IMPORT FROM", 29); + } } @@ -6394,12 +6801,18 @@ static void DefinitionModule (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto decl_enterScope (curmodule); decl_resetConstExpPos (curmodule); while (((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok))))) != 0))) - Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + { + Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + } /* while */ if (mcLexBuf_currenttoken == mcReserved_exporttok) - Export (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + { + Export (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + } while ((((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))))) != 0))) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok))))) != 0)))) - Definition (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + { + Definition (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + } /* while */ Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok))), stopset1, stopset2); @@ -6440,16 +6853,22 @@ static void PushQualident (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok))), stopset1, stopset2); typeExp = push (decl_lookupSym (curident)); if (typeExp == NULL) - mcMetaError_metaError1 ((char *) "the symbol {%1k} is not visible in this scope (or any other nested scope)", 73, (unsigned char *) &curident, (sizeof (curident)-1)); + { + mcMetaError_metaError1 ((char *) "the symbol {%1k} is not visible in this scope (or any other nested scope)", 73, (unsigned char *) &curident, (sizeof (curident)-1)); + } if (mcLexBuf_currenttoken == mcReserved_periodtok) { Expect ((mcReserved_toktype) mcReserved_periodtok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); if (! (decl_isDef (typeExp))) - ErrorArray ((char *) "the first component of this qualident must be a definition module", 65); + { + ErrorArray ((char *) "the first component of this qualident must be a definition module", 65); + } Ident (stopset0, stopset1, stopset2); typeExp = replace (decl_lookupInScope (typeExp, curident)); if (typeExp == NULL) - ErrorArray ((char *) "identifier not found in definition module", 41); + { + ErrorArray ((char *) "identifier not found in definition module", 41); + } } } @@ -6465,7 +6884,9 @@ static void PushQualident (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void OptSubrange (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_lsbratok) - SubrangeType (stopset0, stopset1, stopset2); + { + SubrangeType (stopset0, stopset1, stopset2); + } } @@ -6531,13 +6952,24 @@ static void Enumeration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st static void SimpleType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_identtok) - TypeEquiv (stopset0, stopset1, stopset2); + { + TypeEquiv (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lparatok) - Enumeration (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Enumeration (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lsbratok) - SubrangeType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SubrangeType (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: [ ( identifier", 32); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: [ ( identifier", 32); + } } @@ -6553,19 +6985,39 @@ static void SimpleType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto static void Type (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_identtok)) - SimpleType (stopset0, stopset1, stopset2); + { + SimpleType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_arraytok) - ArrayType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ArrayType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_recordtok) - RecordType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + RecordType (stopset0, stopset1, stopset2); + } else if ((((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_packedsettok-mcReserved_arraytok)) | (1 << (mcReserved_oftok-mcReserved_arraytok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_settok)) - SetType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SetType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_pointertok) - PointerType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + PointerType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_proceduretok) - ProcedureType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ProcedureType (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: PROCEDURE POINTER SET PACKEDSET OF RECORD ARRAY identifier ( [", 80); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: PROCEDURE POINTER SET PACKEDSET OF RECORD ARRAY identifier ( [", 80); + } } @@ -6583,16 +7035,22 @@ static void TypeDeclaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop { Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok)) | (1 << (mcReserved_equaltok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_semicolontok) - Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + { + Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + } else if (mcLexBuf_currenttoken == mcReserved_equaltok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_equaltok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_pointertok-mcReserved_arraytok)) | (1 << (mcReserved_packedsettok-mcReserved_arraytok)) | (1 << (mcReserved_oftok-mcReserved_arraytok)) | (1 << (mcReserved_arraytok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_settok-mcReserved_recordtok)) | (1 << (mcReserved_recordtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); Type (stopset0|(SetOfStop0) ((1 << (mcReserved_ldirectivetok-mcReserved_eoftok)) | (1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); Alignment (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); } else - ErrorArray ((char *) "expecting one of: = ;", 21); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: = ;", 21); + } } /* while */ } @@ -6627,11 +7085,15 @@ static void DefQualident (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 s { Expect ((mcReserved_toktype) mcReserved_periodtok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); if (! (decl_isDef (typeExp))) - ErrorArray ((char *) "the first component of this qualident must be a definition module", 65); + { + ErrorArray ((char *) "the first component of this qualident must be a definition module", 65); + } Ident (stopset0, stopset1, stopset2); typeExp = decl_lookupInScope (typeExp, curident); if (typeExp == NULL) - ErrorArray ((char *) "identifier not found in definition module", 41); + { + ErrorArray ((char *) "identifier not found in definition module", 41); + } } } @@ -6699,13 +7161,24 @@ static void DefEnumeration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void DefSimpleType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_identtok) - DefTypeEquiv (stopset0, stopset1, stopset2); + { + DefTypeEquiv (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lparatok) - DefEnumeration (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + DefEnumeration (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lsbratok) - SubrangeType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SubrangeType (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: [ ( identifier", 32); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: [ ( identifier", 32); + } } @@ -6721,19 +7194,39 @@ static void DefSimpleType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void DefType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_identtok)) - DefSimpleType (stopset0, stopset1, stopset2); + { + DefSimpleType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_arraytok) - ArrayType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ArrayType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_recordtok) - RecordType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + RecordType (stopset0, stopset1, stopset2); + } else if ((((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_packedsettok-mcReserved_arraytok)) | (1 << (mcReserved_oftok-mcReserved_arraytok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_settok)) - SetType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SetType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_pointertok) - PointerType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + PointerType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_proceduretok) - ProcedureType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ProcedureType (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: PROCEDURE POINTER SET PACKEDSET OF RECORD ARRAY identifier ( [", 80); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: PROCEDURE POINTER SET PACKEDSET OF RECORD ARRAY identifier ( [", 80); + } } @@ -6752,16 +7245,22 @@ static void DefTypeDeclaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfS { Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok)) | (1 << (mcReserved_equaltok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_semicolontok) - Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + { + Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + } else if (mcLexBuf_currenttoken == mcReserved_equaltok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_equaltok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_pointertok-mcReserved_arraytok)) | (1 << (mcReserved_packedsettok-mcReserved_arraytok)) | (1 << (mcReserved_oftok-mcReserved_arraytok)) | (1 << (mcReserved_arraytok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_settok-mcReserved_recordtok)) | (1 << (mcReserved_recordtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); DefType (stopset0|(SetOfStop0) ((1 << (mcReserved_ldirectivetok-mcReserved_eoftok)) | (1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); Alignment (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); } else - ErrorArray ((char *) "expecting one of: = ;", 21); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: = ;", 21); + } } /* while */ } @@ -6808,13 +7307,17 @@ static void Definition (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto } else if (mcLexBuf_currenttoken == mcReserved_typetok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_typetok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); while (mcLexBuf_currenttoken == mcReserved_identtok) - DefTypeDeclaration (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + { + DefTypeDeclaration (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + } /* while */ } else if (mcLexBuf_currenttoken == mcReserved_vartok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_vartok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); while (mcLexBuf_currenttoken == mcReserved_identtok) { @@ -6825,11 +7328,15 @@ static void Definition (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto } else if (mcLexBuf_currenttoken == mcReserved_proceduretok) { + /* avoid dangling else. */ DefProcedureHeading (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: PROCEDURE VAR TYPE CONST", 42); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: PROCEDURE VAR TYPE CONST", 42); + } } @@ -6845,7 +7352,9 @@ static void AsmStatement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 s { Expect ((mcReserved_toktype) mcReserved_asmtok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_volatiletok-mcReserved_recordtok)))); if (mcLexBuf_currenttoken == mcReserved_volatiletok) - Expect ((mcReserved_toktype) mcReserved_volatiletok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_volatiletok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)))); AsmOperands (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); @@ -6864,7 +7373,9 @@ static void AsmOperands (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st { string (stopset0|(SetOfStop0) ((1 << (mcReserved_colontok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_colontok) - AsmOperandSpec (stopset0, stopset1, stopset2); + { + AsmOperandSpec (stopset0, stopset1, stopset2); + } } @@ -6907,7 +7418,9 @@ static void AsmOperandSpec (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void AsmList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken == mcReserved_lsbratok) || (mcLexBuf_currenttoken == mcReserved_stringtok)) - AsmElement (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); + { + AsmElement (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); + } while (mcLexBuf_currenttoken == mcReserved_commatok) { Expect ((mcReserved_toktype) mcReserved_commatok, stopset0|(SetOfStop0) ((1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)))); @@ -6944,7 +7457,9 @@ static void NamedOperand (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 s static void AsmOperandName (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_lsbratok) - NamedOperand (stopset0, stopset1, stopset2); + { + NamedOperand (stopset0, stopset1, stopset2); + } } @@ -6977,7 +7492,9 @@ static void AsmElement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto static void TrashList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_stringtok) - string (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); + { + string (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); + } while (mcLexBuf_currenttoken == mcReserved_commatok) { Expect ((mcReserved_toktype) mcReserved_commatok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)))); --- a/src/gcc/gm2/mc-boot/Gmcp5.c +++ b/src/gcc/gm2/mc-boot/Gmcp5.c @@ -2387,18 +2387,34 @@ static void TrashList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop static void followNode (decl_node n) { if (decl_isVar (n)) - mcPrintf_printf0 ((char *) "variable: ", 10); + { + mcPrintf_printf0 ((char *) "variable: ", 10); + } else if (decl_isParameter (n)) - mcPrintf_printf0 ((char *) "parameter: ", 11); + { + /* avoid dangling else. */ + mcPrintf_printf0 ((char *) "parameter: ", 11); + } n = decl_skipType (decl_getType (n)); if (decl_isArray (n)) - mcPrintf_printf0 ((char *) "array\\n", 7); + { + mcPrintf_printf0 ((char *) "array\\n", 7); + } else if (decl_isPointer (n)) - mcPrintf_printf0 ((char *) "pointer\\n", 9); + { + /* avoid dangling else. */ + mcPrintf_printf0 ((char *) "pointer\\n", 9); + } else if (decl_isRecord (n)) - mcPrintf_printf0 ((char *) "record\\n", 8); + { + /* avoid dangling else. */ + mcPrintf_printf0 ((char *) "record\\n", 8); + } else - mcPrintf_printf0 ((char *) "other\\n", 7); + { + /* avoid dangling else. */ + mcPrintf_printf0 ((char *) "other\\n", 7); + } } @@ -2470,7 +2486,9 @@ static unsigned int isQualident (decl_node n) decl_node type; if (decl_isDef (n)) - return TRUE; + { + return TRUE; + } else { type = decl_skipType (decl_getType (n)); @@ -2676,12 +2694,16 @@ static void importInto (decl_node m, nameKey_Name name, decl_node current) mcDebug_assert (((decl_isDef (current)) || (decl_isModule (current))) || (decl_isImp (current))); s = decl_lookupExported (m, name); if (s == NULL) - mcMetaError_metaError2 ((char *) "{%1k} was not exported from definition module {%2a}", 51, (unsigned char *) &name, (sizeof (name)-1), (unsigned char *) &m, (sizeof (m)-1)); + { + mcMetaError_metaError2 ((char *) "{%1k} was not exported from definition module {%2a}", 51, (unsigned char *) &name, (sizeof (name)-1), (unsigned char *) &m, (sizeof (m)-1)); + } else { o = decl_import (current, s); if (s != o) - mcMetaError_metaError2 ((char *) "{%1ad} cannot be imported into the current module as it causes a name clash with {%2ad}", 87, (unsigned char *) &s, (sizeof (s)-1), (unsigned char *) &o, (sizeof (o)-1)); + { + mcMetaError_metaError2 ((char *) "{%1ad} cannot be imported into the current module as it causes a name clash with {%2ad}", 87, (unsigned char *) &s, (sizeof (s)-1), (unsigned char *) &o, (sizeof (o)-1)); + } } } @@ -3173,9 +3195,13 @@ static DynamicStrings_String DescribeStop (SetOfStop0 stopset0, SetOfStop1 stops message = DynamicStrings_KillString (message); } else if (n == 1) - str = DynamicStrings_ConCat (message, DynamicStrings_Mark (DynamicStrings_InitString ((char *) " missing ", 9))); + { + /* avoid dangling else. */ + str = DynamicStrings_ConCat (message, DynamicStrings_Mark (DynamicStrings_InitString ((char *) " missing ", 9))); + } else { + /* avoid dangling else. */ str = DynamicStrings_ConCat (DynamicStrings_InitString ((char *) " expecting one of", 17), message); message = DynamicStrings_KillString (message); } @@ -3571,17 +3597,23 @@ static void SyntaxError (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st { DescribeError (stopset0, stopset1, stopset2); if (Debugging) - mcPrintf_printf0 ((char *) "\\nskipping token *** ", 21); + { + mcPrintf_printf0 ((char *) "\\nskipping token *** ", 21); + } /* yes the ORD(currenttoken) looks ugly, but it is *much* safer than using currenttoken= 32) && (((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || ((((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) - mcLexBuf_getToken (); + while (! (((( ((unsigned int) (mcLexBuf_currenttoken)) < 32) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & (stopset0)) != 0))) || ((( ((unsigned int) (mcLexBuf_currenttoken)) >= 32) && ( ((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || (( ((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) + { + mcLexBuf_getToken (); + } if (Debugging) - mcPrintf_printf0 ((char *) " ***\\n", 6); + { + mcPrintf_printf0 ((char *) " ***\\n", 6); + } } @@ -3593,8 +3625,10 @@ static void SyntaxCheck (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st { /* and again (see above re: ORD) */ - if (! ((((((unsigned int) (mcLexBuf_currenttoken)) < 32) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & (stopset0)) != 0))) || (((((unsigned int) (mcLexBuf_currenttoken)) >= 32) && (((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || ((((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) - SyntaxError (stopset0, stopset1, stopset2); + if (! (((( ((unsigned int) (mcLexBuf_currenttoken)) < 32) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & (stopset0)) != 0))) || ((( ((unsigned int) (mcLexBuf_currenttoken)) >= 32) && ( ((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || (( ((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) + { + SyntaxError (stopset0, stopset1, stopset2); + } } @@ -3612,12 +3646,20 @@ static void WarnMissingToken (mcReserved_toktype t) s0 = (SetOfStop0) 0; s1 = (SetOfStop1) 0; s2 = (SetOfStop2) 0; - if (((unsigned int) (t)) < 32) - s0 = (SetOfStop0) ((1 << (t-mcReserved_eoftok))); - else if (((unsigned int) (t)) < 64) - s1 = (SetOfStop1) ((1 << (t-mcReserved_arraytok))); + if ( ((unsigned int) (t)) < 32) + { + s0 = (SetOfStop0) ((1 << (t-mcReserved_eoftok))); + } + else if ( ((unsigned int) (t)) < 64) + { + /* avoid dangling else. */ + s1 = (SetOfStop1) ((1 << (t-mcReserved_arraytok))); + } else - s2 = (SetOfStop2) ((1 << (t-mcReserved_recordtok))); + { + /* avoid dangling else. */ + s2 = (SetOfStop2) ((1 << (t-mcReserved_recordtok))); + } str = DescribeStop (s0, s1, s2); str = DynamicStrings_ConCat (DynamicStrings_InitString ((char *) "syntax error,", 13), DynamicStrings_Mark (str)); mcError_errorStringAt (str, mcLexBuf_getTokenNo ()); @@ -3634,7 +3676,9 @@ static void MissingToken (mcReserved_toktype t) if ((((t != mcReserved_identtok) && (t != mcReserved_integertok)) && (t != mcReserved_realtok)) && (t != mcReserved_stringtok)) { if (Debugging) - mcPrintf_printf0 ((char *) "inserting token\\n", 17); + { + mcPrintf_printf0 ((char *) "inserting token\\n", 17); + } mcLexBuf_insertToken (t); } } @@ -3646,14 +3690,16 @@ static void MissingToken (mcReserved_toktype t) static unsigned int CheckAndInsert (mcReserved_toktype t, SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { - if ((((((unsigned int) (t)) < 32) && ((((1 << (t-mcReserved_eoftok)) & (stopset0)) != 0))) || (((((unsigned int) (t)) >= 32) && (((unsigned int) (t)) < 64)) && ((((1 << (t-mcReserved_arraytok)) & (stopset1)) != 0)))) || ((((unsigned int) (t)) >= 64) && ((((1 << (t-mcReserved_recordtok)) & (stopset2)) != 0)))) + if (((( ((unsigned int) (t)) < 32) && ((((1 << (t-mcReserved_eoftok)) & (stopset0)) != 0))) || ((( ((unsigned int) (t)) >= 32) && ( ((unsigned int) (t)) < 64)) && ((((1 << (t-mcReserved_arraytok)) & (stopset1)) != 0)))) || (( ((unsigned int) (t)) >= 64) && ((((1 << (t-mcReserved_recordtok)) & (stopset2)) != 0)))) { WarnMissingToken (t); mcLexBuf_insertTokenAndRewind (t); return TRUE; } else - return FALSE; + { + return FALSE; + } } @@ -3663,10 +3709,14 @@ static unsigned int CheckAndInsert (mcReserved_toktype t, SetOfStop0 stopset0, S static unsigned int InStopSet (mcReserved_toktype t, SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { - if ((((((unsigned int) (t)) < 32) && ((((1 << (t-mcReserved_eoftok)) & (stopset0)) != 0))) || (((((unsigned int) (t)) >= 32) && (((unsigned int) (t)) < 64)) && ((((1 << (t-mcReserved_arraytok)) & (stopset1)) != 0)))) || ((((unsigned int) (t)) >= 64) && ((((1 << (t-mcReserved_recordtok)) & (stopset2)) != 0)))) - return TRUE; + if (((( ((unsigned int) (t)) < 32) && ((((1 << (t-mcReserved_eoftok)) & (stopset0)) != 0))) || ((( ((unsigned int) (t)) >= 32) && ( ((unsigned int) (t)) < 64)) && ((((1 << (t-mcReserved_arraytok)) & (stopset1)) != 0)))) || (( ((unsigned int) (t)) >= 64) && ((((1 << (t-mcReserved_recordtok)) & (stopset2)) != 0)))) + { + return TRUE; + } else - return FALSE; + { + return FALSE; + } } @@ -3682,11 +3732,13 @@ static void PeepToken (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop { /* and again (see above re: ORD) */ - if ((! ((((((unsigned int) (mcLexBuf_currenttoken)) < 32) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & (stopset0)) != 0))) || (((((unsigned int) (mcLexBuf_currenttoken)) >= 32) && (((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || ((((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) && (! (InStopSet ((mcReserved_toktype) mcReserved_identtok, stopset0, stopset1, stopset2)))) - /* SyntaxCheck would fail since currentoken is not part of the stopset + if ((! (((( ((unsigned int) (mcLexBuf_currenttoken)) < 32) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & (stopset0)) != 0))) || ((( ((unsigned int) (mcLexBuf_currenttoken)) >= 32) && ( ((unsigned int) (mcLexBuf_currenttoken)) < 64)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & (stopset1)) != 0)))) || (( ((unsigned int) (mcLexBuf_currenttoken)) >= 64) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & (stopset2)) != 0))))) && (! (InStopSet ((mcReserved_toktype) mcReserved_identtok, stopset0, stopset1, stopset2)))) + { + /* SyntaxCheck would fail since currentoken is not part of the stopset we check to see whether any of currenttoken might be a commonly omitted token */ - if ((((((((CheckAndInsert ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2)) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rsbratok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rcbratok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_periodtok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_oftok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_commatok, stopset0, stopset1, stopset2))) - {} /* empty. */ + if ((((((((CheckAndInsert ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2)) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rsbratok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_rcbratok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_periodtok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_oftok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2))) || (CheckAndInsert ((mcReserved_toktype) mcReserved_commatok, stopset0, stopset1, stopset2))) + {} /* empty. */ + } } @@ -3701,10 +3753,14 @@ static void Expect (mcReserved_toktype t, SetOfStop0 stopset0, SetOfStop1 stopse /* avoid dangling else. */ mcLexBuf_getToken (); if (Pass1) - PeepToken (stopset0, stopset1, stopset2); + { + PeepToken (stopset0, stopset1, stopset2); + } } else - MissingToken (t); + { + MissingToken (t); + } SyntaxCheck (stopset0, stopset1, stopset2); } @@ -3768,11 +3824,19 @@ static void Real (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) static void FileUnit (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_definitiontok) - DefinitionModule (stopset0, stopset1, stopset2); + { + DefinitionModule (stopset0, stopset1, stopset2); + } else if (((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_implementationtok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))))) != 0))) - ImplementationOrProgramModule (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ImplementationOrProgramModule (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: IMPLEMENTATION MODULE DEFINITION", 50); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: IMPLEMENTATION MODULE DEFINITION", 50); + } } @@ -3806,10 +3870,14 @@ static void ProgramModule (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 decl_enterScope (curmodule); decl_resetConstExpPos (curmodule); if (mcLexBuf_currenttoken == mcReserved_lsbratok) - Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + { + Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); while (((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok))))) != 0))) - Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + { + Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + } /* while */ Block (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok))), stopset1, stopset2); @@ -3853,10 +3921,14 @@ static void ImplementationModule (SetOfStop0 stopset0, SetOfStop1 stopset1, SetO decl_enterScope (curmodule); decl_resetConstExpPos (curmodule); if (mcLexBuf_currenttoken == mcReserved_lsbratok) - Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + { + Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); while (((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok))))) != 0))) - Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + { + Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + } /* while */ Block (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok))), stopset1, stopset2); @@ -3879,11 +3951,19 @@ static void ImplementationModule (SetOfStop0 stopset0, SetOfStop1 stopset1, SetO static void ImplementationOrProgramModule (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_implementationtok) - ImplementationModule (stopset0, stopset1, stopset2); + { + ImplementationModule (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_moduletok) - ProgramModule (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ProgramModule (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: MODULE IMPLEMENTATION", 39); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: MODULE IMPLEMENTATION", 39); + } } @@ -3940,11 +4020,19 @@ static void ConstReal (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop static void ConstNumber (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_integertok) - ConstInteger (stopset0, stopset1, stopset2); + { + ConstInteger (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_realtok) - ConstReal (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstReal (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: real number integer number", 44); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: real number integer number", 44); + } } @@ -3959,11 +4047,19 @@ static void ConstNumber (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st static void Number (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_integertok) - Integer (stopset0, stopset1, stopset2); + { + Integer (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_realtok) - Real (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Real (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: real number integer number", 44); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: real number integer number", 44); + } } @@ -4067,23 +4163,49 @@ static void ConstExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop static void Relation (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_equaltok) - Expect ((mcReserved_toktype) mcReserved_equaltok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_equaltok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_hashtok) - Expect ((mcReserved_toktype) mcReserved_hashtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_hashtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lessgreatertok) - Expect ((mcReserved_toktype) mcReserved_lessgreatertok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_lessgreatertok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lesstok) - Expect ((mcReserved_toktype) mcReserved_lesstok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_lesstok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lessequaltok) - Expect ((mcReserved_toktype) mcReserved_lessequaltok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_lessequaltok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_greatertok) - Expect ((mcReserved_toktype) mcReserved_greatertok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_greatertok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_greaterequaltok) - Expect ((mcReserved_toktype) mcReserved_greaterequaltok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_greaterequaltok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_intok) - Expect ((mcReserved_toktype) mcReserved_intok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_intok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: IN >= > <= < <> # =", 37); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: IN >= > <= < <> # =", 37); + } } @@ -4125,13 +4247,20 @@ static void UnaryOrConstTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto } else if (mcLexBuf_currenttoken == mcReserved_minustok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_minustok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)))); ConstTerm (stopset0, stopset1, stopset2); } else if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok))))) != 0)))) - ConstTerm (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstTerm (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: NOT ( integer number real number __ATTRIBUTE__ identifier { string - +", 88); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: NOT ( integer number real number __ATTRIBUTE__ identifier { string - +", 88); + } } @@ -4146,13 +4275,24 @@ static void UnaryOrConstTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto static void AddOperator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_plustok) - Expect ((mcReserved_toktype) mcReserved_plustok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_plustok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_minustok) - Expect ((mcReserved_toktype) mcReserved_minustok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_minustok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_ortok) - Expect ((mcReserved_toktype) mcReserved_ortok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_ortok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: OR - +", 24); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: OR - +", 24); + } } @@ -4188,21 +4328,44 @@ static void ConstTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop static void MulOperator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_timestok) - Expect ((mcReserved_toktype) mcReserved_timestok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_timestok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_dividetok) - Expect ((mcReserved_toktype) mcReserved_dividetok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_dividetok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_divtok) - Expect ((mcReserved_toktype) mcReserved_divtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_divtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_modtok) - Expect ((mcReserved_toktype) mcReserved_modtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_modtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_remtok) - Expect ((mcReserved_toktype) mcReserved_remtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_remtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_andtok) - Expect ((mcReserved_toktype) mcReserved_andtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_andtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_ambersandtok) - Expect ((mcReserved_toktype) mcReserved_ambersandtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_ambersandtok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: & AND REM MOD DIV / *", 39); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: & AND REM MOD DIV / *", 39); + } } @@ -4241,23 +4404,41 @@ static void NotConstFactor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void ConstFactor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok))))) != 0))) - ConstNumber (stopset0, stopset1, stopset2); + { + ConstNumber (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_stringtok) - ConstString (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstString (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken == mcReserved_lcbratok) || (mcLexBuf_currenttoken == mcReserved_identtok)) - ConstSetOrQualidentOrFunction (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstSetOrQualidentOrFunction (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lparatok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)))); ConstExpressionNop (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_nottok) - NotConstFactor (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + NotConstFactor (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_attributetok) - ConstAttribute (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstAttribute (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: __ATTRIBUTE__ NOT ( identifier { string integer number real number", 84); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: __ATTRIBUTE__ NOT ( identifier { string integer number real number", 84); + } } @@ -4345,7 +4526,9 @@ static void ConstConstructor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto { Expect ((mcReserved_toktype) mcReserved_lcbratok, stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)))); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok))))) != 0)))) - ConstArraySetRecordValue (stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok))), stopset1, stopset2); + { + ConstArraySetRecordValue (stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rcbratok, stopset0, stopset1, stopset2); } @@ -4371,18 +4554,32 @@ static void ConstSetOrQualidentOrFunction (SetOfStop0 stopset0, SetOfStop1 stops /* avoid gcc warning by using compound statement even if not strictly necessary. */ /* seen optional [ | ] expression */ if (mcLexBuf_currenttoken == mcReserved_lcbratok) - ConstConstructor (stopset0, stopset1, stopset2); + { + ConstConstructor (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lparatok) - ConstActualParameters (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstActualParameters (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: ( {", 21); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ( {", 21); + } } /* end of optional [ | ] expression */ } else if (mcLexBuf_currenttoken == mcReserved_lcbratok) - ConstConstructor (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ConstConstructor (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: { identifier", 30); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: { identifier", 30); + } } @@ -4398,7 +4595,9 @@ static void ConstActualParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, Set { Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)))); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok))))) != 0)))) - ConstExpList (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + { + ConstExpList (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); } @@ -4456,9 +4655,12 @@ static void ConstAttribute (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void ConstAttributeExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_identtok) - Ident (stopset0, stopset1, stopset2); + { + Ident (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lesstok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_lesstok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Qualident (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_commatok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); @@ -4466,7 +4668,10 @@ static void ConstAttributeExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, Expect ((mcReserved_toktype) mcReserved_greatertok, stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: < identifier", 30); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: < identifier", 30); + } } @@ -4497,7 +4702,9 @@ static void ByteAlignment (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void OptAlignmentExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_lparatok) - AlignmentExpression (stopset0, stopset1, stopset2); + { + AlignmentExpression (stopset0, stopset1, stopset2); + } } @@ -4528,7 +4735,9 @@ static void AlignmentExpression (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf static void Alignment (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_ldirectivetok) - ByteAlignment (stopset0, stopset1, stopset2); + { + ByteAlignment (stopset0, stopset1, stopset2); + } } @@ -4607,7 +4816,9 @@ static void RecordType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto { Expect ((mcReserved_toktype) mcReserved_recordtok, stopset0|(SetOfStop0) ((1 << (mcReserved_ldirectivetok-mcReserved_eoftok)) | (1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_casetok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); if (mcLexBuf_currenttoken == mcReserved_ldirectivetok) - DefaultRecordAttributes (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_casetok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + { + DefaultRecordAttributes (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_casetok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + } FieldListSequence (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok))), stopset2); Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2); } @@ -4736,7 +4947,9 @@ static void FieldListSequence (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt static void FieldListStatement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken == mcReserved_casetok) || (mcLexBuf_currenttoken == mcReserved_identtok)) - FieldList (stopset0, stopset1, stopset2); + { + FieldList (stopset0, stopset1, stopset2); + } } @@ -4761,6 +4974,7 @@ static void FieldList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop } else if (mcLexBuf_currenttoken == mcReserved_casetok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_casetok, stopset0|(SetOfStop0) ((1 << (mcReserved_colontok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); CaseTag (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2); Expect ((mcReserved_toktype) mcReserved_oftok, stopset0|(SetOfStop0) ((1 << (mcReserved_bartok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_elsetok-mcReserved_arraytok)) | (1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)))); @@ -4779,7 +4993,10 @@ static void FieldList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: CASE identifier", 33); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: CASE identifier", 33); + } } @@ -4796,9 +5013,13 @@ static void FieldList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop static void TagIdent (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_identtok) - Ident (stopset0, stopset1, stopset2); + { + Ident (stopset0, stopset1, stopset2); + } else - curident = nameKey_NulName; + { + curident = nameKey_NulName; + } } @@ -4890,11 +5111,19 @@ static void VarientCaseLabels (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt static void SetType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_settok) - Expect ((mcReserved_toktype) mcReserved_settok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2); + { + Expect ((mcReserved_toktype) mcReserved_settok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_packedsettok) - Expect ((mcReserved_toktype) mcReserved_packedsettok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_packedsettok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_oftok-mcReserved_arraytok))), stopset2); + } else - ErrorArray ((char *) "expecting one of: PACKEDSET SET", 31); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: PACKEDSET SET", 31); + } Expect ((mcReserved_toktype) mcReserved_oftok, stopset0|(SetOfStop0) ((1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); SimpleType (stopset0, stopset1, stopset2); } @@ -4928,7 +5157,9 @@ static void ProcedureType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 { Expect ((mcReserved_toktype) mcReserved_proceduretok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_lparatok) - FormalTypeList (stopset0, stopset1, stopset2); + { + FormalTypeList (stopset0, stopset1, stopset2); + } } @@ -4951,12 +5182,16 @@ static void FormalTypeList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 } else if ((mcLexBuf_currenttoken == mcReserved_arraytok) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_periodperiodperiodtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) { + /* avoid dangling else. */ ProcedureParameters (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_colontok-mcReserved_eoftok))), stopset1, stopset2); FormalReturn (stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: VAR ... ARRAY identifier )", 44); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: VAR ... ARRAY identifier )", 44); + } } @@ -4995,9 +5230,15 @@ static void OptReturnType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 Expect ((mcReserved_toktype) mcReserved_rsbratok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_identtok) - Qualident (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Qualident (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: identifier [", 30); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: identifier [", 30); + } } @@ -5033,16 +5274,25 @@ static void ProcedureParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf static void ProcedureParameter (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_periodperiodperiodtok) - Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_vartok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_vartok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_arraytok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); FormalType (stopset0, stopset1, stopset2); } else if ((mcLexBuf_currenttoken == mcReserved_arraytok) || (mcLexBuf_currenttoken == mcReserved_identtok)) - FormalType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + FormalType (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: ARRAY identifier VAR ...", 42); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ARRAY identifier VAR ...", 42); + } } @@ -5115,7 +5365,9 @@ static void Designator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto { PushQualident (stopset0|(SetOfStop0) ((1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))), stopset1, stopset2); while ((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))))) != 0))) - SubDesignator (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))), stopset1, stopset2); + { + SubDesignator (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))), stopset1, stopset2); + } /* while */ } @@ -5170,27 +5422,44 @@ static void SubDesignator (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 { field = decl_lookupInScope (type, curident); if (field == NULL) - mcMetaError_metaError2 ((char *) "field {%1k} cannot be found in record {%2ad}", 44, (unsigned char *) &curident, (sizeof (curident)-1), (unsigned char *) &type, (sizeof (type)-1)); + { + mcMetaError_metaError2 ((char *) "field {%1k} cannot be found in record {%2ad}", 44, (unsigned char *) &curident, (sizeof (curident)-1), (unsigned char *) &type, (sizeof (type)-1)); + } else - n = replace (decl_makeComponentRef (n, field)); + { + n = replace (decl_makeComponentRef (n, field)); + } } else - mcMetaError_metaError2 ((char *) "attempting to access a field {%1k} from {%2ad} which does not have a record type", 80, (unsigned char *) &curident, (sizeof (curident)-1), (unsigned char *) &type, (sizeof (type)-1)); + { + mcMetaError_metaError2 ((char *) "attempting to access a field {%1k} from {%2ad} which does not have a record type", 80, (unsigned char *) &curident, (sizeof (curident)-1), (unsigned char *) &type, (sizeof (type)-1)); + } } else if (mcLexBuf_currenttoken == mcReserved_lsbratok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_lsbratok, stopset0|(SetOfStop0) ((1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); ArrayExpList (stopset0|(SetOfStop0) ((1 << (mcReserved_rsbratok-mcReserved_eoftok))), stopset1, stopset2); if (decl_isArray (type)) - n = replace (decl_makeArrayRef (n, pop ())); + { + n = replace (decl_makeArrayRef (n, pop ())); + } else - mcMetaError_metaError1 ((char *) "attempting to access an array but the expression is not an array but a {%1d}", 76, (unsigned char *) &type, (sizeof (type)-1)); + { + mcMetaError_metaError1 ((char *) "attempting to access an array but the expression is not an array but a {%1d}", 76, (unsigned char *) &type, (sizeof (type)-1)); + } Expect ((mcReserved_toktype) mcReserved_rsbratok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_uparrowtok) - SubPointer (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SubPointer (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: ^ [ .", 23); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ^ [ .", 23); + } } @@ -5254,21 +5523,35 @@ static void SubPointer (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto { field = decl_lookupInScope (type, curident); if (field == NULL) - mcMetaError_metaError2 ((char *) "field {%1k} cannot be found in record {%2ad}", 44, (unsigned char *) &curident, (sizeof (curident)-1), (unsigned char *) &type, (sizeof (type)-1)); + { + mcMetaError_metaError2 ((char *) "field {%1k} cannot be found in record {%2ad}", 44, (unsigned char *) &curident, (sizeof (curident)-1), (unsigned char *) &type, (sizeof (type)-1)); + } else - n = replace (decl_makePointerRef (n, field)); + { + n = replace (decl_makePointerRef (n, field)); + } } else - mcMetaError_metaError2 ((char *) "attempting to access a field {%1k} from {%2ad} which does not have a record type", 80, (unsigned char *) &curident, (sizeof (curident)-1), (unsigned char *) &type, (sizeof (type)-1)); + { + mcMetaError_metaError2 ((char *) "attempting to access a field {%1k} from {%2ad} which does not have a record type", 80, (unsigned char *) &curident, (sizeof (curident)-1), (unsigned char *) &type, (sizeof (type)-1)); + } } else - mcMetaError_metaError2 ((char *) "trying to dereference {%1k} which was not declared as a pointer but a {%2tad}", 77, (unsigned char *) &n, (sizeof (n)-1), (unsigned char *) &n, (sizeof (n)-1)); + { + mcMetaError_metaError2 ((char *) "trying to dereference {%1k} which was not declared as a pointer but a {%2tad}", 77, (unsigned char *) &n, (sizeof (n)-1), (unsigned char *) &n, (sizeof (n)-1)); + } } else - if (decl_isPointer (type)) - n = replace (decl_makeDeRef (n)); - else - mcMetaError_metaError1 ((char *) "attempting to dereference a pointer but the expression is not a pointer but a {%1d}", 83, (unsigned char *) &type, (sizeof (type)-1)); + { + if (decl_isPointer (type)) + { + n = replace (decl_makeDeRef (n)); + } + else + { + mcMetaError_metaError1 ((char *) "attempting to dereference a pointer but the expression is not a pointer but a {%1d}", 83, (unsigned char *) &type, (sizeof (type)-1)); + } + } } @@ -5452,14 +5735,21 @@ static void UnaryOrTerm (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st } else if (mcLexBuf_currenttoken == mcReserved_minustok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_minustok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); Term (stopset0, stopset1, stopset2); n = push (decl_makeUnaryTok ((mcReserved_toktype) mcReserved_minustok, pop ())); } else if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - Term (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Term (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: NOT ( string integer number real number { identifier - +", 74); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: NOT ( string integer number real number { identifier - +", 74); + } } @@ -5539,19 +5829,29 @@ static void Factor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset decl_node n; if ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok))))) != 0))) - Number (stopset0, stopset1, stopset2); + { + Number (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_stringtok) - PushString (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + PushString (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken == mcReserved_lcbratok) || (mcLexBuf_currenttoken == mcReserved_identtok)) - SetOrDesignatorOrFunction (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SetOrDesignatorOrFunction (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lparatok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); Expression (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_nottok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_nottok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_attributetok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) { @@ -5560,14 +5860,21 @@ static void Factor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset } else if (mcLexBuf_currenttoken == mcReserved_attributetok) { + /* avoid dangling else. */ ConstAttribute (stopset0, stopset1, stopset2); n = push (decl_makeUnaryTok ((mcReserved_toktype) mcReserved_nottok, pop ())); } else - ErrorArray ((char *) "expecting one of: __ATTRIBUTE__ real number integer number string ( NOT { identifier", 84); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: __ATTRIBUTE__ real number integer number string ( NOT { identifier", 84); + } } else - ErrorArray ((char *) "expecting one of: NOT ( { identifier string integer number real number", 70); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: NOT ( { identifier string integer number real number", 70); + } } @@ -5672,7 +5979,9 @@ static void Constructor (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st Expect ((mcReserved_toktype) mcReserved_lcbratok, stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); n = push (decl_makeSetValue ()); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - ArraySetRecordValue (stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok))), stopset1, stopset2); + { + ArraySetRecordValue (stopset0|(SetOfStop0) ((1 << (mcReserved_rcbratok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rcbratok, stopset0, stopset1, stopset2); } @@ -5735,14 +6044,23 @@ static void SetOrDesignatorOrFunction (SetOfStop0 stopset0, SetOfStop1 stopset1, } } else - ErrorArray ((char *) "expecting one of: ( [ . ^ {", 27); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ( [ . ^ {", 27); + } } /* end of optional [ | ] expression */ } else if (mcLexBuf_currenttoken == mcReserved_lcbratok) - Constructor (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Constructor (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: { identifier", 30); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: { identifier", 30); + } } @@ -5757,7 +6075,9 @@ static void SetOrDesignatorOrFunction (SetOfStop0 stopset0, SetOfStop1 stopset1, static void SimpleDes (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { while ((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))))) != 0))) - SubDesignator (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))), stopset1, stopset2); + { + SubDesignator (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok)) | (1 << (mcReserved_uparrowtok-mcReserved_eoftok))), stopset1, stopset2); + } /* while */ } @@ -5783,7 +6103,9 @@ static void ActualParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_nottok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); n = push (decl_makeExpList ()); if ((((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_minustok-mcReserved_eoftok)) | (1 << (mcReserved_plustok-mcReserved_eoftok)) | (1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lcbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_nottok)) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)) | (1 << (mcReserved_integertok-mcReserved_recordtok)) | (1 << (mcReserved_realtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - ExpList (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + { + ExpList (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); mcDebug_assert (decl_isExpList (peep ())); } @@ -5812,9 +6134,13 @@ static void ExitStatement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 Expect ((mcReserved_toktype) mcReserved_exittok, stopset0, stopset1, stopset2); if (loopNo == 0) - ErrorArray ((char *) "EXIT can only be used inside a LOOP statement", 45); + { + ErrorArray ((char *) "EXIT can only be used inside a LOOP statement", 45); + } else - n = pushStmt (decl_makeExit (peepLoop (), loopNo)); + { + n = pushStmt (decl_makeExit (peepLoop (), loopNo)); + } } @@ -5878,31 +6204,69 @@ static void Statement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop decl_node s; if (mcLexBuf_currenttoken == mcReserved_identtok) - AssignmentOrProcedureCall (stopset0, stopset1, stopset2); + { + AssignmentOrProcedureCall (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_iftok) - IfStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + IfStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_casetok) - CaseStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + CaseStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_whiletok) - WhileStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + WhileStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_repeattok) - RepeatStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + RepeatStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_looptok) - LoopStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + LoopStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_fortok) - ForStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ForStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_withtok) - WithStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + WithStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_asmtok) - AsmStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + AsmStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_exittok) - ExitStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ExitStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_returntok) - ReturnStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ReturnStatement (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_retrytok) - RetryStatement (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + RetryStatement (stopset0, stopset1, stopset2); + } else - s = pushStmt ((decl_node) NULL); + { + /* avoid dangling else. */ + s = pushStmt ((decl_node) NULL); + } } @@ -5965,11 +6329,15 @@ static void AssignmentOrProcedureCall (SetOfStop0 stopset0, SetOfStop1 stopset1, } else if (mcLexBuf_currenttoken == mcReserved_lparatok) { + /* avoid dangling else. */ ActualParameters (stopset0, stopset1, stopset2); a = pushStmt (decl_makeFuncCall (d, pop ())); } else - a = pushStmt (decl_makeFuncCall (d, (decl_node) NULL)); + { + /* avoid dangling else. */ + a = pushStmt (decl_makeFuncCall (d, (decl_node) NULL)); + } decl_addCommentBody (peepStmt ()); decl_addCommentAfter (peepStmt ()); } @@ -6148,9 +6516,12 @@ static void CaseEndStatement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto decl_node c; if (mcLexBuf_currenttoken == mcReserved_endtok) - Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_elsetok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_elsetok, stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_exittok-mcReserved_arraytok)) | (1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_iftok-mcReserved_arraytok)) | (1 << (mcReserved_casetok-mcReserved_arraytok)) | (1 << (mcReserved_looptok-mcReserved_arraytok)) | (1 << (mcReserved_fortok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_returntok-mcReserved_recordtok)) | (1 << (mcReserved_whiletok-mcReserved_recordtok)) | (1 << (mcReserved_repeattok-mcReserved_recordtok)) | (1 << (mcReserved_withtok-mcReserved_recordtok)) | (1 << (mcReserved_asmtok-mcReserved_recordtok)) | (1 << (mcReserved_retrytok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); c = peepStmt (); StatementSequence (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok))), stopset2); @@ -6158,7 +6529,10 @@ static void CaseEndStatement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: ELSE END", 26); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ELSE END", 26); + } } @@ -6583,9 +6957,15 @@ static void DefineBuiltinProcedure (SetOfStop0 stopset0, SetOfStop1 stopset1, Se Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_inlinetok) - Expect ((mcReserved_toktype) mcReserved_inlinetok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_inlinetok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: __INLINE__ __ATTRIBUTE__", 42); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: __INLINE__ __ATTRIBUTE__", 42); + } } /* end of optional [ | ] expression */ } @@ -6607,7 +6987,9 @@ static void ProcedureHeading (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto DefineBuiltinProcedure (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); ProcedureIdent (stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_lparatok) - FormalParameters (stopset0, stopset1, stopset2); + { + FormalParameters (stopset0, stopset1, stopset2); + } } @@ -6626,11 +7008,19 @@ static void Builtin (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopse /* avoid gcc warning by using compound statement even if not strictly necessary. */ /* seen optional [ | ] expression */ if (mcLexBuf_currenttoken == mcReserved_builtintok) - Expect ((mcReserved_toktype) mcReserved_builtintok, stopset0, stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_builtintok, stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_inlinetok) - Expect ((mcReserved_toktype) mcReserved_inlinetok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_inlinetok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: __INLINE__ __BUILTIN__", 40); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: __INLINE__ __BUILTIN__", 40); + } } /* end of optional [ | ] expression */ } @@ -6651,7 +7041,9 @@ static void DefProcedureHeading (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf Builtin (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); DefProcedureIdent (stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_lparatok) - DefFormalParameters (stopset0, stopset1, stopset2); + { + DefFormalParameters (stopset0, stopset1, stopset2); + } } @@ -6667,7 +7059,9 @@ static void DefProcedureHeading (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf static void ProcedureBlock (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { while ((((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))))) != 0))) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok))))) != 0)))) - Declaration (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + { + Declaration (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + } /* while */ if (mcLexBuf_currenttoken == mcReserved_begintok) { @@ -6689,7 +7083,9 @@ static void ProcedureBlock (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void Block (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { while ((((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))))) != 0))) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok))))) != 0)))) - Declaration (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + { + Declaration (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + } /* while */ InitialBlock (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok))), stopset2); FinalBlock (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok))), stopset2); @@ -6867,13 +7263,17 @@ static void Declaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st } else if (mcLexBuf_currenttoken == mcReserved_typetok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_typetok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); while (mcLexBuf_currenttoken == mcReserved_identtok) - TypeDeclaration (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + { + TypeDeclaration (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + } /* while */ } else if (mcLexBuf_currenttoken == mcReserved_vartok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_vartok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); while (mcLexBuf_currenttoken == mcReserved_identtok) { @@ -6884,16 +7284,21 @@ static void Declaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st } else if (mcLexBuf_currenttoken == mcReserved_proceduretok) { + /* avoid dangling else. */ ProcedureDeclaration (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_moduletok) { + /* avoid dangling else. */ ModuleDeclaration (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: MODULE PROCEDURE VAR TYPE CONST", 49); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: MODULE PROCEDURE VAR TYPE CONST", 49); + } } @@ -6914,7 +7319,9 @@ static void DefFormalParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_periodperiodperiodtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); decl_paramEnter (curproc); if ((mcLexBuf_currenttoken == mcReserved_lsbratok) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_periodperiodperiodtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - DefMultiFPSection (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + { + DefMultiFPSection (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_colontok-mcReserved_eoftok))), stopset1, stopset2); decl_paramLeave (curproc); FormalReturn (stopset0, stopset1, stopset2); @@ -6932,7 +7339,9 @@ static void DefFormalParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOf static void DefMultiFPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken == mcReserved_lsbratok) || (mcLexBuf_currenttoken == mcReserved_periodperiodperiodtok)) - DefExtendedFP (stopset0, stopset1, stopset2); + { + DefExtendedFP (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok))))) != 0))) { /* avoid dangling else. */ @@ -6944,7 +7353,10 @@ static void DefMultiFPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt } } else - ErrorArray ((char *) "expecting one of: identifier VAR ... [", 38); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: identifier VAR ... [", 38); + } } @@ -6965,7 +7377,9 @@ static void FormalParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_periodperiodperiodtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); decl_paramEnter (curproc); if ((mcLexBuf_currenttoken == mcReserved_lsbratok) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_periodperiodperiodtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok))))) != 0)))) - MultiFPSection (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + { + MultiFPSection (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0|(SetOfStop0) ((1 << (mcReserved_colontok-mcReserved_eoftok))), stopset1, stopset2); decl_paramLeave (curproc); FormalReturn (stopset0, stopset1, stopset2); @@ -6983,7 +7397,9 @@ static void FormalParameters (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto static void MultiFPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken == mcReserved_lsbratok) || (mcLexBuf_currenttoken == mcReserved_periodperiodperiodtok)) - ExtendedFP (stopset0, stopset1, stopset2); + { + ExtendedFP (stopset0, stopset1, stopset2); + } else if ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok))))) != 0))) { /* avoid dangling else. */ @@ -6995,7 +7411,10 @@ static void MultiFPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 } } else - ErrorArray ((char *) "expecting one of: identifier VAR ... [", 38); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: identifier VAR ... [", 38); + } } @@ -7010,11 +7429,19 @@ static void MultiFPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void FPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_identtok) - NonVarFPSection (stopset0, stopset1, stopset2); + { + NonVarFPSection (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_vartok) - VarFPSection (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + VarFPSection (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: VAR identifier", 32); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: VAR identifier", 32); + } } @@ -7029,11 +7456,19 @@ static void FPSection (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stop static void DefExtendedFP (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_lsbratok) - DefOptArg (stopset0, stopset1, stopset2); + { + DefOptArg (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_periodperiodperiodtok) - Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: ... [", 23); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ... [", 23); + } } @@ -7048,11 +7483,19 @@ static void DefExtendedFP (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void ExtendedFP (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_lsbratok) - OptArg (stopset0, stopset1, stopset2); + { + OptArg (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_periodperiodperiodtok) - Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Expect ((mcReserved_toktype) mcReserved_periodperiodperiodtok, stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: ... [", 23); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: ... [", 23); + } } @@ -7168,13 +7611,19 @@ static void ModuleDeclaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt Expect ((mcReserved_toktype) mcReserved_moduletok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_lsbratok) - Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + { + Priority (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); while (((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok))))) != 0))) - Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + { + Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + } /* while */ if (mcLexBuf_currenttoken == mcReserved_exporttok) - Export (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + { + Export (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_begintok-mcReserved_arraytok)) | (1 << (mcReserved_finallytok-mcReserved_arraytok)) | (1 << (mcReserved_moduletok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_vartok-mcReserved_recordtok)) | (1 << (mcReserved_typetok-mcReserved_recordtok)))); + } Block (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0, stopset1, stopset2); } @@ -7216,13 +7665,20 @@ static void Export (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset } else if (mcLexBuf_currenttoken == mcReserved_unqualifiedtok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_unqualifiedtok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); IdentList (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); } else if (mcLexBuf_currenttoken == mcReserved_identtok) - IdentList (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + { + /* avoid dangling else. */ + IdentList (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: identifier UNQUALIFIED QUALIFIED", 50); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: identifier UNQUALIFIED QUALIFIED", 50); + } Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2); } @@ -7312,11 +7768,19 @@ static void WithoutFromImport (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSt static void Import (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_fromtok) - FromImport (stopset0, stopset1, stopset2); + { + FromImport (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_importtok) - WithoutFromImport (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + WithoutFromImport (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: IMPORT FROM", 29); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: IMPORT FROM", 29); + } } @@ -7352,12 +7816,18 @@ static void DefinitionModule (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfSto curmodule = decl_lookupDef (curident); decl_enterScope (curmodule); while (((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok))))) != 0))) - Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + { + Import (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_exporttok-mcReserved_arraytok)) | (1 << (mcReserved_fromtok-mcReserved_arraytok)) | (1 << (mcReserved_importtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + } /* while */ if (mcLexBuf_currenttoken == mcReserved_exporttok) - Export (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + { + Export (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + } while ((((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))))) != 0))) || ((mcLexBuf_currenttoken >= mcReserved_recordtok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_recordtok)) & ((SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok))))) != 0)))) - Definition (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + { + Definition (stopset0, stopset1|(SetOfStop1) ((1 << (mcReserved_endtok-mcReserved_arraytok)) | (1 << (mcReserved_consttok-mcReserved_arraytok)) | (1 << (mcReserved_proceduretok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_typetok-mcReserved_recordtok)) | (1 << (mcReserved_vartok-mcReserved_recordtok)))); + } /* while */ Expect ((mcReserved_toktype) mcReserved_endtok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok))), stopset1, stopset2); @@ -7415,26 +7885,38 @@ static void PushQualident (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_periodtok-mcReserved_eoftok))), stopset1, stopset2); qualid = push (lookupWithSym (curident)); if (qualid == NULL) - mcMetaError_metaError1 ((char *) "the symbol {%1k} is not visible in this scope (or any other nested scope)", 73, (unsigned char *) &curident, (sizeof (curident)-1)); + { + mcMetaError_metaError1 ((char *) "the symbol {%1k} is not visible in this scope (or any other nested scope)", 73, (unsigned char *) &curident, (sizeof (curident)-1)); + } if (mcLexBuf_currenttoken == mcReserved_periodtok) { Expect ((mcReserved_toktype) mcReserved_periodtok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); if (! (isQualident (qualid))) - ErrorArray ((char *) "the first component of this qualident must be a definition module or a parameter/variable/constant which has record type", 120); + { + ErrorArray ((char *) "the first component of this qualident must be a definition module or a parameter/variable/constant which has record type", 120); + } Ident (stopset0, stopset1, stopset2); if (decl_isDef (qualid)) - qualid = replace (decl_lookupInScope (qualid, curident)); + { + qualid = replace (decl_lookupInScope (qualid, curident)); + } else { type = decl_skipType (decl_getType (qualid)); field = decl_lookupInScope (type, curident); if (field == NULL) - mcMetaError_metaError2 ((char *) "field {%1k} cannot be found in {%2ad}", 37, (unsigned char *) &curident, (sizeof (curident)-1), (unsigned char *) &qualid, (sizeof (qualid)-1)); + { + mcMetaError_metaError2 ((char *) "field {%1k} cannot be found in {%2ad}", 37, (unsigned char *) &curident, (sizeof (curident)-1), (unsigned char *) &qualid, (sizeof (qualid)-1)); + } else - qualid = replace (decl_makeComponentRef (qualid, field)); + { + qualid = replace (decl_makeComponentRef (qualid, field)); + } } if (qualid == NULL) - mcMetaError_metaError1 ((char *) "qualified component of the identifier {%1k} cannot be found", 59, (unsigned char *) &curident, (sizeof (curident)-1)); + { + mcMetaError_metaError1 ((char *) "qualified component of the identifier {%1k} cannot be found", 59, (unsigned char *) &curident, (sizeof (curident)-1)); + } } } @@ -7450,7 +7932,9 @@ static void PushQualident (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void OptSubrange (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_lsbratok) - SubrangeType (stopset0, stopset1, stopset2); + { + SubrangeType (stopset0, stopset1, stopset2); + } } @@ -7516,13 +8000,24 @@ static void Enumeration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st static void SimpleType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_identtok) - TypeEquiv (stopset0, stopset1, stopset2); + { + TypeEquiv (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lparatok) - Enumeration (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + Enumeration (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_lsbratok) - SubrangeType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SubrangeType (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: [ ( identifier", 32); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: [ ( identifier", 32); + } } @@ -7538,19 +8033,39 @@ static void SimpleType (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto static void Type (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (((mcLexBuf_currenttoken < mcReserved_arraytok) && ((((1 << (mcLexBuf_currenttoken-mcReserved_eoftok)) & ((SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_identtok)) - SimpleType (stopset0, stopset1, stopset2); + { + SimpleType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_arraytok) - ArrayType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ArrayType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_recordtok) - RecordType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + RecordType (stopset0, stopset1, stopset2); + } else if ((((mcLexBuf_currenttoken >= mcReserved_arraytok) && (mcLexBuf_currenttoken < mcReserved_recordtok)) && ((((1 << (mcLexBuf_currenttoken-mcReserved_arraytok)) & ((SetOfStop1) ((1 << (mcReserved_packedsettok-mcReserved_arraytok)) | (1 << (mcReserved_oftok-mcReserved_arraytok))))) != 0))) || (mcLexBuf_currenttoken == mcReserved_settok)) - SetType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + SetType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_pointertok) - PointerType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + PointerType (stopset0, stopset1, stopset2); + } else if (mcLexBuf_currenttoken == mcReserved_proceduretok) - ProcedureType (stopset0, stopset1, stopset2); + { + /* avoid dangling else. */ + ProcedureType (stopset0, stopset1, stopset2); + } else - ErrorArray ((char *) "expecting one of: PROCEDURE POINTER SET PACKEDSET OF RECORD ARRAY identifier ( [", 80); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: PROCEDURE POINTER SET PACKEDSET OF RECORD ARRAY identifier ( [", 80); + } } @@ -7568,16 +8083,22 @@ static void TypeDeclaration (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop { Ident (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok)) | (1 << (mcReserved_equaltok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_semicolontok) - Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + { + Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + } else if (mcLexBuf_currenttoken == mcReserved_equaltok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_equaltok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok)) | (1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1|(SetOfStop1) ((1 << (mcReserved_proceduretok-mcReserved_arraytok)) | (1 << (mcReserved_pointertok-mcReserved_arraytok)) | (1 << (mcReserved_packedsettok-mcReserved_arraytok)) | (1 << (mcReserved_oftok-mcReserved_arraytok)) | (1 << (mcReserved_arraytok-mcReserved_arraytok))), stopset2|(SetOfStop2) ((1 << (mcReserved_settok-mcReserved_recordtok)) | (1 << (mcReserved_recordtok-mcReserved_recordtok)) | (1 << (mcReserved_identtok-mcReserved_recordtok)))); Type (stopset0|(SetOfStop0) ((1 << (mcReserved_ldirectivetok-mcReserved_eoftok)) | (1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); Alignment (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); } else - ErrorArray ((char *) "expecting one of: = ;", 21); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: = ;", 21); + } } /* while */ } @@ -7608,13 +8129,17 @@ static void Definition (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto } else if (mcLexBuf_currenttoken == mcReserved_typetok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_typetok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); while (mcLexBuf_currenttoken == mcReserved_identtok) - TypeDeclaration (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + { + TypeDeclaration (stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); + } /* while */ } else if (mcLexBuf_currenttoken == mcReserved_vartok) { + /* avoid dangling else. */ Expect ((mcReserved_toktype) mcReserved_vartok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok)))); while (mcLexBuf_currenttoken == mcReserved_identtok) { @@ -7625,11 +8150,15 @@ static void Definition (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto } else if (mcLexBuf_currenttoken == mcReserved_proceduretok) { + /* avoid dangling else. */ DefProcedureHeading (stopset0|(SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_semicolontok, stopset0, stopset1, stopset2); } else - ErrorArray ((char *) "expecting one of: PROCEDURE VAR TYPE CONST", 42); + { + /* avoid dangling else. */ + ErrorArray ((char *) "expecting one of: PROCEDURE VAR TYPE CONST", 42); + } } @@ -7652,7 +8181,9 @@ static void AsmStatement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 s s = pushStmt (decl_makeComment ((char *) "asm", 3)); Expect ((mcReserved_toktype) mcReserved_asmtok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_volatiletok-mcReserved_recordtok)))); if (mcLexBuf_currenttoken == mcReserved_volatiletok) - Expect ((mcReserved_toktype) mcReserved_volatiletok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); + { + Expect ((mcReserved_toktype) mcReserved_volatiletok, stopset0|(SetOfStop0) ((1 << (mcReserved_lparatok-mcReserved_eoftok))), stopset1, stopset2); + } Expect ((mcReserved_toktype) mcReserved_lparatok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)))); AsmOperands (stopset0|(SetOfStop0) ((1 << (mcReserved_rparatok-mcReserved_eoftok))), stopset1, stopset2); Expect ((mcReserved_toktype) mcReserved_rparatok, stopset0, stopset1, stopset2); @@ -7671,7 +8202,9 @@ static void AsmOperands (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 st { string (stopset0|(SetOfStop0) ((1 << (mcReserved_colontok-mcReserved_eoftok))), stopset1, stopset2); if (mcLexBuf_currenttoken == mcReserved_colontok) - AsmOperandSpec (stopset0, stopset1, stopset2); + { + AsmOperandSpec (stopset0, stopset1, stopset2); + } } @@ -7714,7 +8247,9 @@ static void AsmOperandSpec (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 static void AsmList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if ((mcLexBuf_currenttoken == mcReserved_lsbratok) || (mcLexBuf_currenttoken == mcReserved_stringtok)) - AsmElement (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); + { + AsmElement (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); + } while (mcLexBuf_currenttoken == mcReserved_commatok) { Expect ((mcReserved_toktype) mcReserved_commatok, stopset0|(SetOfStop0) ((1 << (mcReserved_lsbratok-mcReserved_eoftok))), stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)))); @@ -7751,7 +8286,9 @@ static void NamedOperand (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 s static void AsmOperandName (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_lsbratok) - NamedOperand (stopset0, stopset1, stopset2); + { + NamedOperand (stopset0, stopset1, stopset2); + } } @@ -7784,7 +8321,9 @@ static void AsmElement (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 sto static void TrashList (SetOfStop0 stopset0, SetOfStop1 stopset1, SetOfStop2 stopset2) { if (mcLexBuf_currenttoken == mcReserved_stringtok) - string (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); + { + string (stopset0|(SetOfStop0) ((1 << (mcReserved_commatok-mcReserved_eoftok))), stopset1, stopset2); + } while (mcLexBuf_currenttoken == mcReserved_commatok) { Expect ((mcReserved_toktype) mcReserved_commatok, stopset0, stopset1, stopset2|(SetOfStop2) ((1 << (mcReserved_stringtok-mcReserved_recordtok)))); --- a/src/gcc/gm2/mc-boot/GnameKey.c +++ b/src/gcc/gm2/mc-boot/GnameKey.c @@ -177,6 +177,7 @@ static nameKey_Name doMakeKey (ptrToChar n, unsigned int higha) } else if (result == greater) { + /* avoid dangling else. */ Storage_ALLOCATE ((void **) &child, sizeof (_T1)); father->right = child; } @@ -211,17 +212,25 @@ static comparison compare (ptrToChar pi, nameKey_Name j) c1 = (*pi); c2 = (*pj); while ((c1 != ASCII_nul) || (c2 != ASCII_nul)) - if (c1 < c2) - return less; - else if (c1 > c2) - return greater; - else - { - pi += 1; - pj += 1; - c1 = (*pi); - c2 = (*pj); - } + { + if (c1 < c2) + { + return less; + } + else if (c1 > c2) + { + /* avoid dangling else. */ + return greater; + } + else + { + /* avoid dangling else. */ + pi += 1; + pj += 1; + c1 = (*pi); + c2 = (*pj); + } + } return equal; } @@ -241,7 +250,9 @@ static comparison findNodeAndParentInTree (ptrToChar n, nameNode *child, nameNod (*father) = binaryTree; (*child) = binaryTree->left; if ((*child) == NULL) - return less; + { + return less; + } else { do { @@ -253,6 +264,7 @@ static comparison findNodeAndParentInTree (ptrToChar n, nameNode *child, nameNod } else if (result == greater) { + /* avoid dangling else. */ (*father) = (*child); (*child) = (*child)->right; } @@ -283,7 +295,9 @@ nameKey_Name nameKey_makeKey (char *a_, unsigned int _a_high) higha = StrLib_StrLen ((char *) a, _a_high); Storage_ALLOCATE ((void **) &p, higha+1); if (p == NULL) - M2RTS_HALT (-1); /* out of memory error */ + { + M2RTS_HALT (-1); /* out of memory error */ + } else { n = p; @@ -317,13 +331,17 @@ nameKey_Name nameKey_makekey (void * a) unsigned int higha; if (a == NULL) - return nameKey_NulName; + { + return nameKey_NulName; + } else { higha = libc_strlen (a); Storage_ALLOCATE ((void **) &p, higha+1); if (p == NULL) - M2RTS_HALT (-1); /* out of memory error */ + { + M2RTS_HALT (-1); /* out of memory error */ + } else { n = p; @@ -363,7 +381,9 @@ void nameKey_getKey (nameKey_Name key, char *a, unsigned int _a_high) i += 1; } if (i <= higha) - a[i] = ASCII_nul; + { + a[i] = ASCII_nul; + } } @@ -407,37 +427,45 @@ unsigned int nameKey_isKey (char *a_, unsigned int _a_high) /* firstly set up the initial values of child, using sentinal node */ child = binaryTree->left; if (child != NULL) - do { - i = 0; - higha = _a_high; - p = nameKey_keyToCharStar (child->key); - while ((i <= higha) && (a[i] != ASCII_nul)) - { - if (a[i] < (*p)) - { - child = child->left; - i = higha; - } - else if (a[i] > (*p)) - { - child = child->right; - i = higha; - } - else - { - if ((a[i] == ASCII_nul) || (i == higha)) - { - /* avoid gcc warning by using compound statement even if not strictly necessary. */ - if ((*p) == ASCII_nul) - return TRUE; - else - child = child->left; - } - p += 1; - } - i += 1; - } - } while (! (child == NULL)); + { + do { + i = 0; + higha = _a_high; + p = nameKey_keyToCharStar (child->key); + while ((i <= higha) && (a[i] != ASCII_nul)) + { + if (a[i] < (*p)) + { + child = child->left; + i = higha; + } + else if (a[i] > (*p)) + { + /* avoid dangling else. */ + child = child->right; + i = higha; + } + else + { + /* avoid dangling else. */ + if ((a[i] == ASCII_nul) || (i == higha)) + { + /* avoid gcc warning by using compound statement even if not strictly necessary. */ + if ((*p) == ASCII_nul) + { + return TRUE; + } + else + { + child = child->left; + } + } + p += 1; + } + i += 1; + } + } while (! (child == NULL)); + } return FALSE; } @@ -473,7 +501,9 @@ unsigned int nameKey_isSameExcludingCase (nameKey_Name key1, nameKey_Name key2) char c2; if (key1 == key2) - return TRUE; + { + return TRUE; + } else { pi = nameKey_keyToCharStar (key1); @@ -481,16 +511,20 @@ unsigned int nameKey_isSameExcludingCase (nameKey_Name key1, nameKey_Name key2) c1 = (*pi); c2 = (*pj); while ((c1 != ASCII_nul) && (c2 != ASCII_nul)) - if (((c1 == c2) || (((c1 >= 'A') && (c1 <= 'Z')) && (c2 == ((char) ((((unsigned int) (c1))-((unsigned int) ('A')))+((unsigned int) ('a'))))))) || (((c2 >= 'A') && (c2 <= 'Z')) && (c1 == ((char) ((((unsigned int) (c2))-((unsigned int) ('A')))+((unsigned int) ('a'))))))) - { - pi += 1; - pj += 1; - c1 = (*pi); - c2 = (*pj); - } - else - /* difference found */ - return FALSE; + { + if (((c1 == c2) || (((c1 >= 'A') && (c1 <= 'Z')) && (c2 == ((char) (( ((unsigned int) (c1))- ((unsigned int) ('A')))+ ((unsigned int) ('a'))))))) || (((c2 >= 'A') && (c2 <= 'Z')) && (c1 == ((char) (( ((unsigned int) (c2))- ((unsigned int) ('A')))+ ((unsigned int) ('a'))))))) + { + pi += 1; + pj += 1; + c1 = (*pi); + c2 = (*pj); + } + else + { + /* difference found */ + return FALSE; + } + } return c1 == c2; } } @@ -503,9 +537,13 @@ unsigned int nameKey_isSameExcludingCase (nameKey_Name key1, nameKey_Name key2) void * nameKey_keyToCharStar (nameKey_Name key) { if ((key == nameKey_NulName) || (! (Indexing_InBounds (keyIndex, (unsigned int) key)))) - return NULL; + { + return NULL; + } else - return Indexing_GetIndice (keyIndex, (unsigned int) key); + { + return Indexing_GetIndice (keyIndex, (unsigned int) key); + } } void _M2_nameKey_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[]) --- a/src/gcc/gm2/mc-boot/GsymbolKey.c +++ b/src/gcc/gm2/mc-boot/GsymbolKey.c @@ -135,21 +135,26 @@ static void findNodeAndParentInTree (symbolKey_symbolTree t, nameKey_Name n, sym /* remember to skip the sentinal value and assign father and child */ (*father) = t; if (t == NULL) - Debug_Halt ((char *) "parameter t should never be NIL", 31, 203, (char *) "../../gcc-versionno/gcc/gm2/mc/symbolKey.mod", 44); + { + Debug_Halt ((char *) "parameter t should never be NIL", 31, 203, (char *) "../../gcc-versionno/gcc/gm2/mc/symbolKey.mod", 44); + } (*child) = t->left; if ((*child) != NULL) - do { - if (n < (*child)->name) - { - (*father) = (*child); - (*child) = (*child)->left; - } - else if (n > (*child)->name) - { - (*father) = (*child); - (*child) = (*child)->right; - } - } while (! (((*child) == NULL) || (n == (*child)->name))); + { + do { + if (n < (*child)->name) + { + (*father) = (*child); + (*child) = (*child)->left; + } + else if (n > (*child)->name) + { + /* avoid dangling else. */ + (*father) = (*child); + (*child) = (*child)->right; + } + } while (! (((*child) == NULL) || (n == (*child)->name))); + } } @@ -162,9 +167,13 @@ static void findNodeAndParentInTree (symbolKey_symbolTree t, nameKey_Name n, sym static unsigned int searchForAny (symbolKey_symbolTree t, symbolKey_isSymbol p) { if (t == NULL) - return FALSE; + { + return FALSE; + } else - return (((*p.proc) (t->key)) || (searchForAny (t->left, p))) || (searchForAny (t->right, p)); + { + return (((*p.proc) (t->key)) || (searchForAny (t->left, p))) || (searchForAny (t->right, p)); + } } @@ -211,14 +220,20 @@ void * symbolKey_getSymKey (symbolKey_symbolTree t, nameKey_Name name) symbolKey_symbolTree child; if (t == NULL) - return symbolKey_NulKey; + { + return symbolKey_NulKey; + } else { findNodeAndParentInTree (t, name, &child, &father); if (child == NULL) - return symbolKey_NulKey; + { + return symbolKey_NulKey; + } else - return child->key; + { + return child->key; + } } } @@ -238,23 +253,28 @@ void symbolKey_putSymKey (symbolKey_symbolTree t, nameKey_Name name, void * key) father->left = child; } else - if (name < father->name) - { - Storage_ALLOCATE ((void **) &child, sizeof (_T1)); - father->left = child; - } - else if (name > father->name) - { - Storage_ALLOCATE ((void **) &child, sizeof (_T1)); - father->right = child; - } + { + if (name < father->name) + { + Storage_ALLOCATE ((void **) &child, sizeof (_T1)); + father->left = child; + } + else if (name > father->name) + { + /* avoid dangling else. */ + Storage_ALLOCATE ((void **) &child, sizeof (_T1)); + father->right = child; + } + } child->right = NULL; child->left = NULL; child->key = key; child->name = name; } else - Debug_Halt ((char *) "symbol already stored", 21, 119, (char *) "../../gcc-versionno/gcc/gm2/mc/symbolKey.mod", 44); + { + Debug_Halt ((char *) "symbol already stored", 21, 119, (char *) "../../gcc-versionno/gcc/gm2/mc/symbolKey.mod", 44); + } } @@ -273,43 +293,55 @@ void symbolKey_delSymKey (symbolKey_symbolTree t, nameKey_Name name) findNodeAndParentInTree (t, name, &child, &father); /* find father and child of the node */ if ((child != NULL) && (child->name == name)) - /* Have found the node to be deleted */ - if (father->right == child) - { - /* most branch of child^.left. */ - if (child->left != NULL) - { - /* Scan for right most node of child^.left */ - i = child->left; - while (i->right != NULL) - i = i->right; - i->right = child->right; - father->right = child->left; - } - else - /* (as in a single linked list) to child^.right */ - father->right = child->right; - Storage_DEALLOCATE ((void **) &child, sizeof (_T1)); - } - else - { - /* branch of child^.right */ - if (child->right != NULL) - { - /* Scan for left most node of child^.right */ - i = child->right; - while (i->left != NULL) - i = i->left; - i->left = child->left; - father->left = child->right; - } - else - /* (as in a single linked list) to child^.left. */ - father->left = child->left; - Storage_DEALLOCATE ((void **) &child, sizeof (_T1)); - } + { + /* Have found the node to be deleted */ + if (father->right == child) + { + /* most branch of child^.left. */ + if (child->left != NULL) + { + /* Scan for right most node of child^.left */ + i = child->left; + while (i->right != NULL) + { + i = i->right; + } + i->right = child->right; + father->right = child->left; + } + else + { + /* (as in a single linked list) to child^.right */ + father->right = child->right; + } + Storage_DEALLOCATE ((void **) &child, sizeof (_T1)); + } + else + { + /* branch of child^.right */ + if (child->right != NULL) + { + /* Scan for left most node of child^.right */ + i = child->right; + while (i->left != NULL) + { + i = i->left; + } + i->left = child->left; + father->left = child->right; + } + else + { + /* (as in a single linked list) to child^.left. */ + father->left = child->left; + } + Storage_DEALLOCATE ((void **) &child, sizeof (_T1)); + } + } else - Debug_Halt ((char *) "trying to delete a symbol that is not in the tree - the compiler never expects this to occur", 92, 186, (char *) "../../gcc-versionno/gcc/gm2/mc/symbolKey.mod", 44); + { + Debug_Halt ((char *) "trying to delete a symbol that is not in the tree - the compiler never expects this to occur", 92, 186, (char *) "../../gcc-versionno/gcc/gm2/mc/symbolKey.mod", 44); + } } --- a/src/gcc/gm2/mc-boot/Gvarargs.c +++ b/src/gcc/gm2/mc-boot/Gvarargs.c @@ -147,14 +147,16 @@ void varargs_arg (varargs_vararg v, unsigned char *a, unsigned int _a_high) unsigned char * p; if (v->i == v->nArgs) - M2RTS_HALT (-1); /* too many calls to arg. */ + { + M2RTS_HALT (-1); /* too many calls to arg. */ + } else { - if (((_a_high)+1) == v->arg.array[v->i].len) + if ((_a_high+1) == v->arg.array[v->i].len) { p = v->arg.array[v->i].ptr; j = 0; - while (j <= (_a_high)) + while (j <= _a_high) { a[j] = (*p); p += 1; @@ -162,7 +164,9 @@ void varargs_arg (varargs_vararg v, unsigned char *a, unsigned int _a_high) } } else - M2RTS_HALT (-1); /* parameter mismatch. */ + { + M2RTS_HALT (-1); /* parameter mismatch. */ + } v->i += 1; } } @@ -216,21 +220,27 @@ void varargs_replace (varargs_vararg v, unsigned char *a, unsigned int _a_high) unsigned char * p; if (v->i == v->nArgs) - M2RTS_HALT (-1); /* too many calls to arg. */ + { + M2RTS_HALT (-1); /* too many calls to arg. */ + } else - if (((_a_high)+1) == v->arg.array[v->i].len) - { - p = v->arg.array[v->i].ptr; - j = 0; - while (j <= (_a_high)) - { - (*p) = a[j]; - p += 1; - j += 1; - } - } - else - M2RTS_HALT (-1); /* parameter mismatch. */ + { + if ((_a_high+1) == v->arg.array[v->i].len) + { + p = v->arg.array[v->i].ptr; + j = 0; + while (j <= _a_high) + { + (*p) = a[j]; + p += 1; + j += 1; + } + } + else + { + M2RTS_HALT (-1); /* parameter mismatch. */ + } + } } @@ -242,7 +252,7 @@ void varargs_end (varargs_vararg *v) { if ((*v) != NULL) { - Storage_DEALLOCATE (&(*v)->contents, (unsigned int) sizeof (varargs_vararg)); + Storage_DEALLOCATE (&(*v)->contents, sizeof (varargs_vararg)); Storage_DEALLOCATE ((void **) &(*v), sizeof (_T1)); } } @@ -263,7 +273,7 @@ varargs_vararg varargs_start1 (unsigned char *a_, unsigned int _a_high) Storage_ALLOCATE ((void **) &v, sizeof (_T1)); v->i = 0; v->nArgs = 1; - v->size = (_a_high)+1; + v->size = _a_high+1; Storage_ALLOCATE (&v->contents, v->size); v->contents = libc_memcpy (v->contents, &a, (size_t) v->size); v->arg.array[0].ptr = v->contents; @@ -290,15 +300,15 @@ varargs_vararg varargs_start2 (unsigned char *a_, unsigned int _a_high, unsigned Storage_ALLOCATE ((void **) &v, sizeof (_T1)); v->i = 0; v->nArgs = 2; - v->size = ((_a_high)+(_b_high))+2; + v->size = (_a_high+_b_high)+2; Storage_ALLOCATE (&v->contents, v->size); - p = libc_memcpy (v->contents, &a, (size_t) (_a_high)+1); + p = libc_memcpy (v->contents, &a, (size_t) _a_high+1); v->arg.array[0].ptr = p; - v->arg.array[0].len = (_a_high)+1; + v->arg.array[0].len = _a_high+1; p += v->arg.array[0].len; - p = libc_memcpy ((void *) p, &b, (size_t) (_b_high)+1); + p = libc_memcpy ((void *) p, &b, (size_t) _b_high+1); v->arg.array[1].ptr = p; - v->arg.array[1].len = (_b_high)+1; + v->arg.array[1].len = _b_high+1; return v; } @@ -323,19 +333,19 @@ varargs_vararg varargs_start3 (unsigned char *a_, unsigned int _a_high, unsigned Storage_ALLOCATE ((void **) &v, sizeof (_T1)); v->i = 0; v->nArgs = 3; - v->size = (((_a_high)+(_b_high))+(_c_high))+3; + v->size = ((_a_high+_b_high)+_c_high)+3; Storage_ALLOCATE (&v->contents, v->size); - p = libc_memcpy (v->contents, &a, (size_t) (_a_high)+1); + p = libc_memcpy (v->contents, &a, (size_t) _a_high+1); v->arg.array[0].ptr = p; - v->arg.array[0].len = (_a_high)+1; + v->arg.array[0].len = _a_high+1; p += v->arg.array[0].len; - p = libc_memcpy ((void *) p, &b, (size_t) (_b_high)+1); + p = libc_memcpy ((void *) p, &b, (size_t) _b_high+1); v->arg.array[1].ptr = p; - v->arg.array[1].len = (_b_high)+1; + v->arg.array[1].len = _b_high+1; p += v->arg.array[1].len; - p = libc_memcpy ((void *) p, &c, (size_t) (_c_high)+1); + p = libc_memcpy ((void *) p, &c, (size_t) _c_high+1); v->arg.array[2].ptr = p; - v->arg.array[2].len = (_c_high)+1; + v->arg.array[2].len = _c_high+1; return v; } @@ -362,22 +372,22 @@ varargs_vararg varargs_start4 (unsigned char *a_, unsigned int _a_high, unsigned Storage_ALLOCATE ((void **) &v, sizeof (_T1)); v->i = 0; v->nArgs = 4; - v->size = ((((_a_high)+(_b_high))+(_c_high))+(_d_high))+4; + v->size = (((_a_high+_b_high)+_c_high)+_d_high)+4; Storage_ALLOCATE (&v->contents, v->size); - p = libc_memcpy (v->contents, &a, (size_t) (_a_high)+1); - v->arg.array[0].len = (_a_high)+1; + p = libc_memcpy (v->contents, &a, (size_t) _a_high+1); + v->arg.array[0].len = _a_high+1; p += v->arg.array[0].len; - p = libc_memcpy ((void *) p, &b, (size_t) (_b_high)+1); + p = libc_memcpy ((void *) p, &b, (size_t) _b_high+1); v->arg.array[1].ptr = p; - v->arg.array[1].len = (_b_high)+1; + v->arg.array[1].len = _b_high+1; p += v->arg.array[1].len; - p = libc_memcpy ((void *) p, &c, (size_t) (_c_high)+1); + p = libc_memcpy ((void *) p, &c, (size_t) _c_high+1); v->arg.array[2].ptr = p; - v->arg.array[2].len = (_c_high)+1; + v->arg.array[2].len = _c_high+1; p += v->arg.array[2].len; - p = libc_memcpy ((void *) p, &c, (size_t) (_c_high)+1); + p = libc_memcpy ((void *) p, &c, (size_t) _c_high+1); v->arg.array[3].ptr = p; - v->arg.array[3].len = (_c_high)+1; + v->arg.array[3].len = _c_high+1; return v; } --- a/src/gcc/gm2/mc-boot/Gwlists.c +++ b/src/gcc/gm2/mc-boot/Gwlists.c @@ -189,7 +189,9 @@ void wlists_killList (wlists_wlist *l) if ((*l) != NULL) { if ((*l)->next != NULL) - wlists_killList (&(*l)->next); + { + wlists_killList (&(*l)->next); + } Storage_DEALLOCATE ((void **) &(*l), sizeof (_T1)); } } @@ -207,9 +209,13 @@ void wlists_putItemIntoList (wlists_wlist l, unsigned int c) l->elements.array[l->noOfElements-1] = c; } else if (l->next != NULL) - wlists_putItemIntoList (l->next, c); + { + /* avoid dangling else. */ + wlists_putItemIntoList (l->next, c); + } else { + /* avoid dangling else. */ l->next = wlists_initList (); wlists_putItemIntoList (l->next, c); } @@ -225,9 +231,13 @@ unsigned int wlists_getItemFromList (wlists_wlist l, unsigned int n) while (l != NULL) { if (n <= l->noOfElements) - return l->elements.array[n-1]; + { + return l->elements.array[n-1]; + } else - n -= l->noOfElements; + { + n -= l->noOfElements; + } l = l->next; } return 0; @@ -245,15 +255,23 @@ unsigned int wlists_getIndexOfList (wlists_wlist l, unsigned int c) unsigned int i; if (l == NULL) - return 0; + { + return 0; + } else { i = 1; while (i <= l->noOfElements) - if (l->elements.array[i-1] == c) - return i; - else - i += 1; + { + if (l->elements.array[i-1] == c) + { + return i; + } + else + { + i += 1; + } + } return l->noOfElements+(wlists_getIndexOfList (l->next, c)); } } @@ -268,7 +286,9 @@ unsigned int wlists_noOfItemsInList (wlists_wlist l) unsigned int t; if (l == NULL) - return 0; + { + return 0; + } else { t = 0; @@ -289,7 +309,9 @@ unsigned int wlists_noOfItemsInList (wlists_wlist l) void wlists_includeItemIntoList (wlists_wlist l, unsigned int c) { if (! (wlists_isItemInList (l, c))) - wlists_putItemIntoList (l, c); + { + wlists_putItemIntoList (l, c); + } } @@ -311,9 +333,13 @@ void wlists_removeItemFromList (wlists_wlist l, unsigned int c) do { i = 1; while ((i <= l->noOfElements) && (l->elements.array[i-1] != c)) - i += 1; + { + i += 1; + } if ((i <= l->noOfElements) && (l->elements.array[i-1] == c)) - found = TRUE; + { + found = TRUE; + } else { p = l; @@ -321,7 +347,9 @@ void wlists_removeItemFromList (wlists_wlist l, unsigned int c) } } while (! ((l == NULL) || found)); if (found) - removeItem (p, l, i); + { + removeItem (p, l, i); + } } } @@ -337,9 +365,13 @@ void wlists_replaceItemInList (wlists_wlist l, unsigned int n, unsigned int w) while (l != NULL) { if (n <= l->noOfElements) - l->elements.array[n-1] = w; + { + l->elements.array[n-1] = w; + } else - n -= l->noOfElements; + { + n -= l->noOfElements; + } l = l->next; } } @@ -356,10 +388,16 @@ unsigned int wlists_isItemInList (wlists_wlist l, unsigned int c) do { i = 1; while (i <= l->noOfElements) - if (l->elements.array[i-1] == c) - return TRUE; - else - i += 1; + { + if (l->elements.array[i-1] == c) + { + return TRUE; + } + else + { + i += 1; + } + } l = l->next; } while (! (l == NULL)); return FALSE; --- a/src/gcc/gm2/mc/decl.mod +++ b/src/gcc/gm2/mc/decl.mod @@ -5,20 +5,19 @@ Contributed by Gaius Mulley . This file is part of GNU Modula-2. -GNU Modula-2 is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 3, or (at your option) any later -version. +GNU Modula-2 is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3, or (at your option) +any later version. -GNU Modula-2 is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +GNU Modula-2 is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. -You should have received a copy of the GNU General Public License along -with gm2; see the file COPYING. If not, write to the Free Software -Foundation, 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. *) +You should have received a copy of the GNU General Public License +along with GNU Modula-2; see the file COPYING3. If not see +. *) IMPLEMENTATION MODULE decl ; (*!m2pim*) @@ -71,6 +70,9 @@ CONST debugDecl = FALSE ; caseException = TRUE ; returnException = TRUE ; + (* this is a work around to avoid ever having to handle dangling else. *) + forceCompoundStatement = TRUE ; (* TRUE will avoid dangling else, by always using {}. *) + TYPE language = (ansiC, ansiCP, pim4) ; @@ -122,6 +124,14 @@ TYPE node = POINTER TO RECORD CASE kind: nodeT OF + throw, + new, + dispose, + inc, + dec, + incl, + excl, + halt : intrinsicF: intrinsicT | explist : explistF: explistT | exit : exitF : exitT | return : returnF : returnT | @@ -209,8 +219,8 @@ TYPE greater, greequal, lessequal, - cast, val, + cast, plus, sub, div, @@ -227,7 +237,6 @@ TYPE ord, float, trunc, - throw, re, im, not, @@ -246,6 +255,13 @@ TYPE at: where ; END ; + intrinsicT = RECORD + args : node ; + noArgs : CARDINAL ; + type : node ; + intrinsicComment: commentPair ; + END ; + fixupInfo = RECORD count: CARDINAL ; info : Index ; @@ -3316,9 +3332,13 @@ END getExpList ; PROCEDURE expListLen (p: node) : CARDINAL ; BEGIN - assert (p#NIL) ; - assert (isExpList (p)) ; - RETURN HighIndice (p^.explistF.exp) + IF p = NIL + THEN + RETURN 0 + ELSE + assert (isExpList (p)) ; + RETURN HighIndice (p^.explistF.exp) + END END expListLen ; @@ -3497,7 +3517,26 @@ END isAnyType ; (* - makeCast - + makeVal - creates a VAL (type, expression) node. +*) + +PROCEDURE makeVal (params: node) : node ; +BEGIN + assert (isExpList (params)) ; + IF expListLen (params) = 2 + THEN + RETURN makeBinary (val, + getExpList (params, 1), + getExpList (params, 2), + getExpList (params, 1)) + ELSE + HALT + END +END makeVal ; + + +(* + makeCast - creates a cast node TYPENAME (expr). *) PROCEDURE makeCast (c, p: node) : node ; @@ -3512,6 +3551,135 @@ BEGIN END makeCast ; +(* + makeIntrisicProc - +*) + +PROCEDURE makeIntrinsicProc (k: nodeT; noArgs: CARDINAL; p: node) : node ; +VAR + f: node ; +BEGIN + f := newNode (k) ; + f^.intrinsicF.args := p ; + f^.intrinsicF.noArgs := noArgs ; + f^.intrinsicF.type := NIL ; + initPair (f^.intrinsicF.intrinsicComment) ; + RETURN f +END makeIntrinsicProc ; + + +(* + makeIntrinsicUnaryType - +*) + +PROCEDURE makeIntrinsicUnaryType (k: nodeT; paramList: node; returnType: node) : node ; +BEGIN + RETURN makeUnary (k, getExpList (paramList, 1), returnType) +END makeIntrinsicUnaryType ; + + +(* + makeIntrinsicBinaryType - +*) + +PROCEDURE makeIntrinsicBinaryType (k: nodeT; paramList: node; returnType: node) : node ; +BEGIN + RETURN makeBinary (k, getExpList (paramList, 1), getExpList (paramList, 2), returnType) +END makeIntrinsicBinaryType ; + + +(* + checkIntrinsic - checks to see if the function call to, c, with + parameter list, n, is really an intrinic. If it + is an intrinic then an intrinic node is created + and returned. Otherwise NIL is returned. +*) + +PROCEDURE checkIntrinsic (c, n: node) : node ; +BEGIN + IF isAnyType (c) + THEN + RETURN makeCast (c, n) + ELSIF c = maxN + THEN + RETURN makeIntrinsicUnaryType (max, n, NIL) + ELSIF c = minN + THEN + RETURN makeIntrinsicUnaryType (min, n, NIL) + ELSIF c = haltN + THEN + RETURN makeIntrinsicProc (halt, expListLen (n), n) + ELSIF c = valN + THEN + RETURN makeVal (n) + ELSIF c = adrN + THEN + RETURN makeIntrinsicUnaryType (adr, n, addressN) + ELSIF c = sizeN + THEN + RETURN makeIntrinsicUnaryType (size, n, cardinalN) + ELSIF c = tsizeN + THEN + RETURN makeIntrinsicUnaryType (tsize, n, cardinalN) + ELSIF c = floatN + THEN + RETURN makeIntrinsicUnaryType (float, n, realN) + ELSIF c = truncN + THEN + RETURN makeIntrinsicUnaryType (trunc, n, integerN) + ELSIF c = ordN + THEN + RETURN makeIntrinsicUnaryType (ord, n, cardinalN) + ELSIF c = chrN + THEN + RETURN makeIntrinsicUnaryType (chr, n, charN) + ELSIF c = capN + THEN + RETURN makeIntrinsicUnaryType (cap, n, charN) + ELSIF c = absN + THEN + RETURN makeIntrinsicUnaryType (abs, n, NIL) + ELSIF c = imN + THEN + RETURN makeIntrinsicUnaryType (im, n, NIL) + ELSIF c = reN + THEN + RETURN makeIntrinsicUnaryType (re, n, NIL) + ELSIF c = cmplxN + THEN + RETURN makeIntrinsicBinaryType (cmplx, n, NIL) + ELSIF c = highN + THEN + RETURN makeIntrinsicUnaryType (high, n, cardinalN) + ELSIF c = incN + THEN + RETURN makeIntrinsicProc (inc, expListLen (n), n) + ELSIF c = decN + THEN + RETURN makeIntrinsicProc (dec, expListLen (n), n) + ELSIF c = inclN + THEN + RETURN makeIntrinsicProc (incl, expListLen (n), n) + ELSIF c = exclN + THEN + RETURN makeIntrinsicProc (excl, expListLen (n), n) + ELSIF c = newN + THEN + RETURN makeIntrinsicProc (new, 1, n) + ELSIF c = disposeN + THEN + RETURN makeIntrinsicProc (dispose, 1, n) + ELSIF c = lengthN + THEN + RETURN makeIntrinsicUnaryType (length, n, cardinalN) + ELSIF c = throwN + THEN + RETURN makeIntrinsicProc (throw, 1, n) + END ; + RETURN NIL +END checkIntrinsic ; + + (* makeFuncCall - builds a function call to c with param list, n. *) @@ -3527,17 +3695,16 @@ BEGIN THEN addImportedModule (getMainModule (), lookupDef (makeKey ('M2RTS')), FALSE) END ; - IF isAnyType (c) + f := checkIntrinsic (c, n) ; + IF f = NIL THEN - RETURN makeCast (c, n) - ELSE f := newNode (funccall) ; f^.funccallF.function := c ; f^.funccallF.args := n ; f^.funccallF.type := NIL ; - initPair (f^.funccallF.funccallComment) ; - RETURN f - END + initPair (f^.funccallF.funccallComment) + END ; + RETURN f END makeFuncCall ; @@ -4024,7 +4191,6 @@ BEGIN assert (n # NIL) ; CASE n^.kind OF - throw, re, im, deref, @@ -4050,6 +4216,40 @@ BEGIN END isUnary ; +(* + isBinary - returns TRUE if, n, is an binary node. +*) + +PROCEDURE isBinary (n: node) : BOOLEAN ; +BEGIN + assert (n # NIL) ; + CASE n^.kind OF + + cmplx, + and, + or, + equal, + notequal, + less, + greater, + greequal, + lessequal, + val, + cast, + plus, + sub, + div, + mod, + mult, + divide, + in : RETURN TRUE + + ELSE + RETURN FALSE + END +END isBinary ; + + (* makeUnary - create a unary expression node with, e, as the argument and res as the return type. @@ -4068,6 +4268,8 @@ BEGIN kind := k ; CASE kind OF + min, + max, throw, re, im, @@ -4199,17 +4401,17 @@ END foldBinary ; (* - makeBinary - create a binary node with left/right/result type: l, r and res. + makeBinary - create a binary node with left/right/result type: l, r and resultType. *) -PROCEDURE makeBinary (k: nodeT; l, r: node; res: node) : node ; +PROCEDURE makeBinary (k: nodeT; l, r: node; resultType: node) : node ; VAR n: node ; BEGIN - n := foldBinary (k, l, r, res) ; + n := foldBinary (k, l, r, resultType) ; IF n = NIL THEN - n := doMakeBinary (k, l, r, res) + n := doMakeBinary (k, l, r, resultType) END ; RETURN n END makeBinary ; @@ -4694,6 +4896,8 @@ BEGIN mult, divide : RETURN binaryF.resultType | in : RETURN booleanN | + max, + min, re, im, abs, @@ -4789,40 +4993,7 @@ END getMaxMinType ; PROCEDURE doGetFuncType (n: node) : node ; BEGIN assert (isFuncCall (n)) ; - IF isIntrinsic (n) - THEN - CASE n^.funccallF.function^.kind OF - - max, - min : RETURN getMaxMinType (getExpList (n^.funccallF.args, 1)) | - cast, - val : RETURN getExpList (n^.funccallF.args, 1) | - adr : RETURN addressN | - size, - tsize, - float : RETURN realN | - trunc : RETURN integerN | - ord : RETURN cardinalN | - chr : RETURN charN | - cap : RETURN charN | - re, - im : RETURN realN | - cmplx : RETURN complexN | - abs : RETURN getExprType (getExpList (n^.funccallF.args, 1)) | - high : RETURN cardinalN | - halt, - inc, - dec, - incl, - excl, - new, - dispose: HALT | - length : RETURN cardinalN - - END - ELSE - RETURN doSetExprType (n^.funccallF.type, getType (n^.funccallF.function)) - END + RETURN doSetExprType (n^.funccallF.type, getType (n^.funccallF.function)) END doGetFuncType ; @@ -4835,10 +5006,13 @@ BEGIN WITH n^ DO CASE kind OF + max, + min : RETURN getMaxMinType (n^.unaryF.arg) | + cast, + val : RETURN doSetExprType (n^.binaryF.resultType, n^.binaryF.left) | halt, new, dispose : RETURN NIL | - length : RETURN cardinalN | inc, dec, incl, @@ -4908,8 +5082,6 @@ BEGIN elsif, assignment : HALT | (* expressions. *) - cast, - val : RETURN doSetExprType (binaryF.resultType, binaryF.left) | plus, sub, div, @@ -5404,6 +5576,7 @@ BEGIN pointerref : RETURN FALSE | cast : RETURN TRUE | val : RETURN TRUE | + abs : RETURN FALSE | plus, sub, div, @@ -5423,6 +5596,9 @@ BEGIN or : RETURN TRUE | funccall : RETURN TRUE | recordfield : RETURN FALSE | + loc, + byte, + word, type, char, cardinal, @@ -5955,22 +6131,15 @@ END doInC ; PROCEDURE doThrowC (p: pretty; n: node) ; BEGIN - assert (isFuncCall (n)) ; - IF n^.funccallF.args = NIL + assert (isIntrinsic (n)) ; + outText (p, "throw") ; + setNeedSpace (p) ; + outText (p, '(') ; + IF expListLen (n^.intrinsicF.args) = 1 THEN - HALT - ELSE - IF expListLen (n^.funccallF.args) = 1 - THEN - outText (p, "throw") ; - setNeedSpace (p) ; - outText (p, '(') ; - doExprC (p, getExpList (n^.funccallF.args, 1)) ; - outText (p, ')') - ELSE - HALT (* metaError0 ('expecting a single parameter to THROW') *) - END - END + doExprC (p, getExpList (n^.intrinsicF.args, 1)) + END ; + outText (p, ')') END doThrowC ; @@ -6026,18 +6195,25 @@ BEGIN constexp : doUnary (p, '', unaryF.arg, unaryF.resultType, FALSE, FALSE) | neg : doUnary (p, '-', unaryF.arg, unaryF.resultType, FALSE, FALSE) | not : doUnary (p, '!', unaryF.arg, unaryF.resultType, FALSE, TRUE) | - adr : doUnary (p, '&', unaryF.arg, unaryF.resultType, TRUE, FALSE) | - size : doUnary (p, 'sizeof', unaryF.arg, unaryF.resultType, TRUE, TRUE) | - tsize : doUnary (p, 'sizeof', unaryF.arg, unaryF.resultType, TRUE, TRUE) | - trunc : doUnary (p, 'TRUNC', unaryF.arg, unaryF.resultType, TRUE, TRUE) | - float : doUnary (p, 'FLOAT', unaryF.arg, unaryF.resultType, TRUE, TRUE) | - ord : doUnary (p, 'ORD', unaryF.arg, unaryF.resultType, TRUE, TRUE) | - chr : doUnary (p, 'CHR', unaryF.arg, unaryF.resultType, TRUE, TRUE) | - cap : doUnary (p, 'CAP', unaryF.arg, unaryF.resultType, TRUE, TRUE) | - high : doUnary (p, 'HIGH', unaryF.arg, unaryF.resultType, TRUE, TRUE) | - re, - im, - cmplx : HALT (* should all be function calls. *) | + val : doValC (p, n) | + adr : doAdrC (p, n) | + size, + tsize : doSizeC (p, n) | + float : doConvertC (p, n, "(double)") | + trunc : doConvertC (p, n, "(int)") | + ord : doConvertC (p, n, "(unsigned int)") | + chr : doConvertC (p, n, "(char)") | + cap : doCapC (p, n) | + abs : doAbsC (p, n) | + high : doFuncHighC (p, n^.unaryF.arg) | + length : doLengthC (p, n) | + min : doMinC (p, n) | + max : doMaxC (p, n) | + throw : doThrowC (p, n) | + re : doReC (p, n) | + im : doImC (p, n) | + cmplx : doCmplx (p, n) | + deref : doDeRefC (p, unaryF.arg) | equal : doBinary (p, '==', binaryF.left, binaryF.right, TRUE, TRUE, TRUE) | notequal : doBinary (p, '!=', binaryF.left, binaryF.right, TRUE, TRUE, TRUE) | @@ -6048,7 +6224,6 @@ BEGIN componentref : doComponentRefC (p, componentrefF.rec, componentrefF.field) | pointerref : doPointerRefC (p, pointerrefF.ptr, pointerrefF.field) | cast : doCastC (p, binaryF.left, binaryF.right) | - val : doPreBinary (p, 'VAL', binaryF.left, binaryF.right, TRUE, TRUE) | plus : doPolyBinary (p, plus, binaryF.left, binaryF.right, FALSE, FALSE) | sub : doPolyBinary (p, sub, binaryF.left, binaryF.right, FALSE, FALSE) | div : doBinary (p, '/', binaryF.left, binaryF.right, TRUE, TRUE, FALSE) | @@ -6062,8 +6237,6 @@ BEGIN const : doConstExpr (p, n) | enumerationfield: doEnumerationField (p, n) | string : doStringC (p, n) | - max : doUnary (p, 'MAX', unaryF.arg, unaryF.resultType, TRUE, TRUE) | - min : doUnary (p, 'MIN', unaryF.arg, unaryF.resultType, TRUE, TRUE) | var : doVar (p, n) | arrayref : doArrayRef (p, n) | funccall : doFuncExprC (p, n) | @@ -8909,7 +9082,7 @@ BEGIN setindent (p, getindent (p) + indentationC) ; outText (p, "{} /* empty. */\n") ; p := popPretty (p) - ELSIF isStatementSequence (s) AND isSingleStatement (s) + ELSIF isStatementSequence (s) AND isSingleStatement (s) AND (NOT forceCompoundStatement) THEN p := pushPretty (p) ; setindent (p, getindent (p) + indentationC) ; @@ -8942,8 +9115,9 @@ BEGIN doExprC (p, s^.elsifF.expr) ; outText (p, ")\n") ; assert ((s^.elsifF.else = NIL) OR (s^.elsifF.elsif = NIL)) ; - IF hasIfAndNoElse (s^.elsifF.then) AND - ((s^.elsifF.else # NIL) OR (s^.elsifF.elsif # NIL)) + IF forceCompoundStatement OR + (hasIfAndNoElse (s^.elsifF.then) AND + ((s^.elsifF.else # NIL) OR (s^.elsifF.elsif # NIL))) THEN (* avoid dangling else. *) p := pushPretty (p) ; @@ -8962,7 +9136,22 @@ BEGIN IF containsStatement (s^.elsifF.else) THEN outText (p, "else\n") ; - doCompoundStmt (p, s^.elsifF.else) + IF forceCompoundStatement + THEN + (* avoid dangling else. *) + p := pushPretty (p) ; + setindent (p, getindent (p) + indentationC) ; + outText (p, "{\n") ; + p := pushPretty (p) ; + setindent (p, getindent (p) + indentationC) ; + outText (p, "/* avoid dangling else. */\n") ; + doStatementSequenceC (p, s^.elsifF.else) ; + p := popPretty (p) ; + outText (p, "}\n") ; + p := popPretty (p) + ELSE + doCompoundStmt (p, s^.elsifF.else) + END ELSIF (s^.elsifF.elsif#NIL) AND isElsif (s^.elsifF.elsif) THEN doElsifC (p, s^.elsifF.elsif) @@ -9833,16 +10022,8 @@ END doAdrArgC ; PROCEDURE doAdrC (p: pretty; n: node) ; BEGIN - assert (isFuncCall (n)) ; - IF n^.funccallF.args # NIL - THEN - IF expListLen (n^.funccallF.args) = 1 - THEN - doAdrArgC (p, getExpList (n^.funccallF.args, 1)) - END - ELSE - - END + assert (isUnary (n)) ; + doAdrArgC (p, n^.unaryF.arg) END doAdrC ; @@ -9852,7 +10033,7 @@ END doAdrC ; PROCEDURE doInc (p: pretty; n: node) ; BEGIN - assert (isFuncCall (n)) ; + assert (isIntrinsic (n)) ; IF lang = ansiCP THEN doIncDecCP (p, n, "+") @@ -9868,7 +10049,7 @@ END doInc ; PROCEDURE doDec (p: pretty; n: node) ; BEGIN - assert (isFuncCall (n)) ; + assert (isIntrinsic (n)) ; IF lang = ansiCP THEN doIncDecCP (p, n, "-") @@ -9884,18 +10065,18 @@ END doDec ; PROCEDURE doIncDecC (p: pretty; n: node; op: ARRAY OF CHAR) ; BEGIN - assert (isFuncCall (n)) ; - IF n^.funccallF.args # NIL + assert (isIntrinsic (n)) ; + IF n^.intrinsicF.args # NIL THEN - doExprC (p, getExpList (n^.funccallF.args, 1)) ; + doExprC (p, getExpList (n^.intrinsicF.args, 1)) ; setNeedSpace (p) ; outText (p, op) ; setNeedSpace (p) ; - IF expListLen (n^.funccallF.args) = 1 + IF expListLen (n^.intrinsicF.args) = 1 THEN outText (p, '1') ELSE - doExprC (p, getExpList (n^.funccallF.args, 2)) + doExprC (p, getExpList (n^.intrinsicF.args, 2)) END END END doIncDecC ; @@ -9907,14 +10088,16 @@ END doIncDecC ; PROCEDURE doIncDecCP (p: pretty; n: node; op: ARRAY OF CHAR) ; VAR + lhs, type: node ; BEGIN - assert (isFuncCall (n)) ; - IF n^.funccallF.args # NIL + assert (isIntrinsic (n)) ; + IF n^.intrinsicF.args # NIL THEN - doExprC (p, getExpList (n^.funccallF.args, 1)) ; + lhs := getExpList (n^.intrinsicF.args, 1) ; + doExprC (p, lhs) ; setNeedSpace (p) ; - type := getType (getExpList (n^.funccallF.args, 1)) ; + type := getType (lhs) ; IF isPointer (type) OR (type = addressN) THEN (* cast to (char * ) and then back again after the arithmetic is complete. *) @@ -9924,15 +10107,15 @@ BEGIN doTypeNameC (p, type) ; noSpace (p) ; outText (p, '> (reinterpret_cast (') ; - doExprC (p, getExpList (n^.funccallF.args, 1)) ; + doExprC (p, lhs) ; noSpace (p) ; outText (p, ')') ; outText (p, op) ; - IF expListLen (n^.funccallF.args) = 1 + IF expListLen (n^.intrinsicF.args) = 1 THEN outText (p, '1') ELSE - doExprC (p, getExpList (n^.funccallF.args, 2)) + doExprC (p, getExpList (n^.intrinsicF.args, 2)) END ; outText (p, ')') ELSIF isEnumeration (skipType (type)) @@ -9941,25 +10124,25 @@ BEGIN doTypeNameC (p, type) ; noSpace (p) ; outText (p, ">(static_cast(") ; - doExprC (p, getExpList (n^.funccallF.args, 1)) ; + doExprC (p, lhs) ; outText (p, ")") ; outText (p, op) ; - IF expListLen (n^.funccallF.args) = 1 + IF expListLen (n^.intrinsicF.args) = 1 THEN outText (p, '1') ELSE - doExprC (p, getExpList (n^.funccallF.args, 2)) + doExprC (p, getExpList (n^.intrinsicF.args, 2)) END ; outText (p, ")") ELSE outText (p, op) ; outText (p, "=") ; setNeedSpace (p) ; - IF expListLen (n^.funccallF.args) = 1 + IF expListLen (n^.intrinsicF.args) = 1 THEN outText (p, '1') ELSE - doExprC (p, getExpList (n^.funccallF.args, 2)) + doExprC (p, getExpList (n^.intrinsicF.args, 2)) END END END @@ -9974,13 +10157,13 @@ PROCEDURE doInclC (p: pretty; n: node) ; VAR lo: node ; BEGIN - assert (isFuncCall (n)) ; - IF n^.funccallF.args # NIL + assert (isIntrinsic (n)) ; + IF n^.intrinsicF.args # NIL THEN - IF expListLen (n^.funccallF.args) = 2 + IF expListLen (n^.intrinsicF.args) = 2 THEN - doExprC (p, getExpList (n^.funccallF.args, 1)) ; - lo := getSetLow (getExpList (n^.funccallF.args, 1)) ; + doExprC (p, getExpList (n^.intrinsicF.args, 1)) ; + lo := getSetLow (getExpList (n^.intrinsicF.args, 1)) ; setNeedSpace (p) ; outText (p, '|=') ; setNeedSpace (p) ; @@ -9989,7 +10172,7 @@ BEGIN outText (p, '<<') ; setNeedSpace (p) ; outText (p, '(') ; - doExprC (p, getExpList (n^.funccallF.args, 2)) ; + doExprC (p, getExpList (n^.intrinsicF.args, 2)) ; doSubtractC (p, lo) ; setNeedSpace (p) ; outText (p, '))') @@ -10008,13 +10191,13 @@ PROCEDURE doExclC (p: pretty; n: node) ; VAR lo: node ; BEGIN - assert (isFuncCall (n)) ; - IF n^.funccallF.args # NIL + assert (isIntrinsic (n)) ; + IF n^.intrinsicF.args # NIL THEN - IF expListLen (n^.funccallF.args) = 2 + IF expListLen (n^.intrinsicF.args) = 2 THEN - doExprC (p, getExpList (n^.funccallF.args, 1)) ; - lo := getSetLow (getExpList (n^.funccallF.args, 1)) ; + doExprC (p, getExpList (n^.intrinsicF.args, 1)) ; + lo := getSetLow (getExpList (n^.intrinsicF.args, 1)) ; setNeedSpace (p) ; outText (p, '&=') ; setNeedSpace (p) ; @@ -10023,7 +10206,7 @@ BEGIN outText (p, '<<') ; setNeedSpace (p) ; outText (p, '(') ; - doExprC (p, getExpList (n^.funccallF.args, 2)) ; + doExprC (p, getExpList (n^.intrinsicF.args, 2)) ; doSubtractC (p, lo) ; setNeedSpace (p) ; outText (p, ')))') @@ -10042,12 +10225,12 @@ PROCEDURE doNewC (p: pretty; n: node) ; VAR t: node ; BEGIN - assert (isFuncCall (n)) ; - IF n^.funccallF.args = NIL + assert (isIntrinsic (n)) ; + IF n^.intrinsicF.args = NIL THEN HALT ELSE - IF expListLen (n^.funccallF.args) = 1 + IF expListLen (n^.intrinsicF.args) = 1 THEN keyc.useStorage ; outText (p, 'Storage_ALLOCATE') ; @@ -10055,10 +10238,10 @@ BEGIN outText (p, '((void **)') ; setNeedSpace (p) ; outText (p, '&') ; - doExprC (p, getExpList (n^.funccallF.args, 1)) ; + doExprC (p, getExpList (n^.intrinsicF.args, 1)) ; outText (p, ',') ; setNeedSpace (p) ; - t := skipType (getType (getExpList (n^.funccallF.args, 1))) ; + t := skipType (getType (getExpList (n^.intrinsicF.args, 1))) ; IF isPointer (t) THEN t := getType (t) ; @@ -10084,12 +10267,12 @@ PROCEDURE doDisposeC (p: pretty; n: node) ; VAR t: node ; BEGIN - assert (isFuncCall (n)) ; - IF n^.funccallF.args = NIL + assert (isIntrinsic (n)) ; + IF n^.intrinsicF.args = NIL THEN HALT ELSE - IF expListLen (n^.funccallF.args) = 1 + IF expListLen (n^.intrinsicF.args) = 1 THEN keyc.useStorage ; outText (p, 'Storage_DEALLOCATE') ; @@ -10097,10 +10280,10 @@ BEGIN outText (p, '((void **)') ; setNeedSpace (p) ; outText (p, '&') ; - doExprC (p, getExpList (n^.funccallF.args, 1)) ; + doExprC (p, getExpList (n^.intrinsicF.args, 1)) ; outText (p, ',') ; setNeedSpace (p) ; - t := skipType (getType (getExpList (n^.funccallF.args, 1))) ; + t := skipType (getType (getExpList (n^.intrinsicF.args, 1))) ; IF isPointer (t) THEN t := getType (t) ; @@ -10126,22 +10309,17 @@ END doDisposeC ; PROCEDURE doCapC (p: pretty; n: node) ; BEGIN - assert (isFuncCall (n)) ; - IF n^.funccallF.args = NIL + assert (isUnary (n)) ; + IF n^.unaryF.arg = NIL THEN - HALT + HALT (* metaError0 ('expecting a single parameter to CAP') *) ELSE - IF expListLen (n^.funccallF.args) = 1 - THEN - keyc.useCtype ; - outText (p, 'toupper') ; - setNeedSpace (p) ; - outText (p, '(') ; - doExprC (p, getExpList (n^.funccallF.args, 1)) ; - outText (p, ')') - ELSE - HALT (* metaError0 ('expecting a single parameter to CAP') *) - END + keyc.useCtype ; + outText (p, 'toupper') ; + setNeedSpace (p) ; + outText (p, '(') ; + doExprC (p, n^.unaryF.arg) ; + outText (p, ')') END END doCapC ; @@ -10151,29 +10329,21 @@ END doCapC ; *) PROCEDURE doLengthC (p: pretty; n: node) ; -VAR - v: node ; BEGIN - assert (isFuncCall (n)) ; - IF n^.funccallF.args = NIL + assert (isUnary (n)) ; + IF n^.unaryF.arg = NIL THEN - HALT + HALT (* metaError0 ('expecting a single parameter to LENGTH') *) ELSE - IF expListLen (n^.funccallF.args) = 1 - THEN - keyc.useM2RTS ; - outText (p, 'M2RTS_Length') ; - setNeedSpace (p) ; - outText (p, '(') ; - v := getExpList (n^.funccallF.args, 1) ; - doExprC (p, v) ; - outText (p, ',') ; - setNeedSpace (p) ; - doFuncHighC (p, v) ; - outText (p, ')') - ELSE - HALT (* metaError0 ('expecting a single parameter to LENGTH') *) - END + keyc.useM2RTS ; + outText (p, 'M2RTS_Length') ; + setNeedSpace (p) ; + outText (p, '(') ; + doExprC (p, n^.unaryF.arg) ; + outText (p, ',') ; + setNeedSpace (p) ; + doFuncHighC (p, n^.unaryF.arg) ; + outText (p, ')') END END doLengthC ; @@ -10186,12 +10356,12 @@ PROCEDURE doAbsC (p: pretty; n: node) ; VAR t: node ; BEGIN - assert (isFuncCall (n)) ; - IF (n^.funccallF.args # NIL) AND (expListLen (n^.funccallF.args) = 1) + assert (isUnary (n)) ; + IF n^.unaryF.arg = NIL THEN - t := getExprType (n) - ELSE HALT + ELSE + t := getExprType (n) END ; IF t = longintN THEN @@ -10216,7 +10386,9 @@ BEGIN HALT END ; setNeedSpace (p) ; - doFuncArgsC (p, n, NIL, TRUE) + outText (p, "(") ; + doExprC (p, n^.unaryF.arg) ; + outText (p, ")") END doAbsC ; @@ -10226,24 +10398,14 @@ END doAbsC ; PROCEDURE doValC (p: pretty; n: node) ; BEGIN - assert (isFuncCall (n)) ; - IF n^.funccallF.args = NIL - THEN - HALT - ELSE - IF expListLen (n^.funccallF.args) = 2 - THEN - outText (p, '(') ; - doTypeNameC (p, getExpList (n^.funccallF.args, 1)) ; - outText (p, ')') ; - setNeedSpace (p) ; - outText (p, '(') ; - doExprC (p, getExpList (n^.funccallF.args, 2)) ; - outText (p, ')') - ELSE - HALT - END - END + assert (isBinary (n)) ; + outText (p, '(') ; + doTypeNameC (p, n^.binaryF.left) ; + outText (p, ')') ; + setNeedSpace (p) ; + outText (p, '(') ; + doExprC (p, n^.binaryF.right) ; + outText (p, ')') END doValC ; @@ -10253,22 +10415,11 @@ END doValC ; PROCEDURE doMinC (p: pretty; n: node) ; VAR - t, a: node ; + t: node ; BEGIN - assert (isFuncCall (n)) ; - IF n^.funccallF.args = NIL - THEN - HALT - ELSE - IF expListLen (n^.funccallF.args) = 1 - THEN - a := getExpList (n^.funccallF.args, 1) ; - t := getExprType (a) ; - doExprC (p, getMin (t)) ; - ELSE - HALT - END - END + assert (isUnary (n)) ; + t := getExprType (n^.unaryF.arg) ; + doExprC (p, getMin (t)) ; END doMinC ; @@ -10278,62 +10429,34 @@ END doMinC ; PROCEDURE doMaxC (p: pretty; n: node) ; VAR - t, a: node ; + t: node ; BEGIN - assert (isFuncCall (n)) ; - IF n^.funccallF.args = NIL - THEN - HALT - ELSE - IF expListLen (n^.funccallF.args) = 1 - THEN - a := getExpList (n^.funccallF.args, 1) ; - t := getExprType (a) ; - doExprC (p, getMax (t)) ; - ELSE - HALT - END - END + assert (isUnary (n)) ; + t := getExprType (n^.unaryF.arg) ; + doExprC (p, getMax (t)) ; END doMaxC ; (* - isIntrinsic - returns if, n, is an instrinsic procedure. + isIntrinsic - returns if, n, is an intrinsic procedure. + The intrinsic functions are represented as unary and binary nodes. *) PROCEDURE isIntrinsic (n: node) : BOOLEAN ; BEGIN - CASE n^.funccallF.function^.kind OF + CASE n^.kind OF - halt, - max, - min, - cast, - val, - adr, - size, - tsize, - float, - trunc, - ord, - chr, - cap, - abs, - im, - re, - cmplx, - high, + throw, inc, dec, incl, excl, new, dispose, - length, - throw : RETURN TRUE + halt : RETURN TRUE ELSE - RETURN isFuncCall (n) AND (n^.funccallF.function = haltN) + RETURN FALSE END END isIntrinsic ; @@ -10344,18 +10467,18 @@ END isIntrinsic ; PROCEDURE doHalt (p: pretty; n: node) ; BEGIN - assert (isFuncCall (n)) ; - IF (n^.funccallF.args = NIL) OR (expListLen (n^.funccallF.args) = 0) + assert (n^.kind = halt) ; + IF (n^.intrinsicF.args = NIL) OR (expListLen (n^.intrinsicF.args) = 0) THEN outText (p, 'M2RTS_HALT') ; setNeedSpace (p) ; outText (p, '(-1)') - ELSIF expListLen (n^.funccallF.args) = 1 + ELSIF expListLen (n^.intrinsicF.args) = 1 THEN outText (p, 'M2RTS_HALT') ; setNeedSpace (p) ; outText (p, '(') ; - doExprC (p, getExpList (n^.funccallF.args, 1)) ; + doExprC (p, getExpList (n^.intrinsicF.args, 1)) ; outText (p, ')') END END doHalt ; @@ -10369,10 +10492,10 @@ PROCEDURE doReC (p: pretty; n: node) ; VAR t: node ; BEGIN - assert (isFuncCall (n)) ; - IF (n^.funccallF.args # NIL) AND (expListLen (n^.funccallF.args) = 1) + assert (n^.kind = re) ; + IF n^.unaryF.arg # NIL THEN - t := getExprType (n) + t := getExprType (n^.unaryF.arg) ELSE HALT END ; @@ -10384,7 +10507,9 @@ BEGIN HALT END ; setNeedSpace (p) ; - doFuncArgsC (p, n, NIL, TRUE) + outText (p, '(') ; + doExprC (p, n^.unaryF.arg) ; + outText (p, ')') END doReC ; @@ -10396,10 +10521,10 @@ PROCEDURE doImC (p: pretty; n: node) ; VAR t: node ; BEGIN - assert (isFuncCall (n)) ; - IF (n^.funccallF.args # NIL) AND (expListLen (n^.funccallF.args) = 1) + assert (n^.kind = im) ; + IF n^.unaryF.arg # NIL THEN - t := getExprType (n) + t := getExprType (n^.unaryF.arg) ELSE HALT END ; @@ -10411,7 +10536,9 @@ BEGIN HALT END ; setNeedSpace (p) ; - doFuncArgsC (p, n, NIL, TRUE) + outText (p, '(') ; + doExprC (p, n^.unaryF.arg) ; + outText (p, ')') END doImC ; @@ -10421,32 +10548,22 @@ END doImC ; PROCEDURE doCmplx (p: pretty; n: node) ; BEGIN - assert (isFuncCall (n)) ; - IF n^.funccallF.args # NIL - THEN - IF expListLen (n^.funccallF.args) = 2 - THEN - keyc.useComplex ; - setNeedSpace (p) ; - outText (p, '(') ; - doExprC (p, getExpList (n^.funccallF.args, 1)) ; - outText (p, ')') ; - setNeedSpace (p) ; - outText (p, '+') ; - setNeedSpace (p) ; - outText (p, '(') ; - doExprC (p, getExpList (n^.funccallF.args, 2)) ; - setNeedSpace (p) ; - outText (p, '*') ; - setNeedSpace (p) ; - outText (p, 'I') ; - outText (p, ')') ; - ELSE - HALT (* metaError0 ('expecting two parameters to CMPLX') *) - END - ELSE - HALT (* metaError0 ('expecting two parameters to CMPLX') *) - END + assert (isBinary (n)) ; + keyc.useComplex ; + setNeedSpace (p) ; + outText (p, '(') ; + doExprC (p, n^.binaryF.left) ; + outText (p, ')') ; + setNeedSpace (p) ; + outText (p, '+') ; + setNeedSpace (p) ; + outText (p, '(') ; + doExprC (p, n^.binaryF.right) ; + setNeedSpace (p) ; + outText (p, '*') ; + setNeedSpace (p) ; + outText (p, 'I') ; + outText (p, ')') END doCmplx ; @@ -10456,53 +10573,110 @@ END doCmplx ; PROCEDURE doIntrinsicC (p: pretty; n: node) ; BEGIN - IF n^.funccallF.function = haltN - THEN - doHalt (p, n) - ELSE - CASE n^.funccallF.function^.kind OF + assert (isIntrinsic (n)) ; + doCommentC (p, n^.intrinsicF.intrinsicComment.body) ; + CASE n^.kind OF - halt: doHalt (p, n) | - val: doValC (p, n) | - adr: doAdrC (p, n) | - size, - tsize: outText (p, "sizeof") ; - setNeedSpace (p) ; - doFuncArgsC (p, n, NIL, TRUE) | - float: outText (p, "(double)") ; - setNeedSpace (p) ; - doFuncArgsC (p, n, NIL, TRUE) | - trunc: outText (p, "(int)") ; - setNeedSpace (p) ; - doFuncArgsC (p, n, NIL, TRUE) | - ord: outText (p, "(unsigned int)") ; - setNeedSpace (p) ; - doFuncArgsC (p, n, NIL, TRUE) | - chr: outText (p, "(char)") ; - setNeedSpace (p) ; - doFuncArgsC (p, n, NIL, TRUE) | - cap: doCapC (p, n) | - abs: doAbsC (p, n) | - high: doFuncHighC (p, getExpList (n^.funccallF.args, 1)) | - inc: doInc (p, n) | - dec: doDec (p, n) | - incl: doInclC (p, n) | - excl: doExclC (p, n) | - new: doNewC (p, n) | - dispose: doDisposeC (p, n) | - length: doLengthC (p, n) | - min: doMinC (p, n) | - max: doMaxC (p, n) | - throw: doThrowC (p, n) | - re: doReC (p, n) | - im: doImC (p, n) | - cmplx: doCmplx (p, n) + throw: doThrowC (p, n) | + halt: doHalt (p, n) | + inc: doInc (p, n) | + dec: doDec (p, n) | + incl: doInclC (p, n) | + excl: doExclC (p, n) | + new: doNewC (p, n) | + dispose: doDisposeC (p, n) - END - END + END ; + outText (p, ";") ; + doAfterCommentC (p, n^.intrinsicF.intrinsicComment.after) END doIntrinsicC ; +(* + isIntrinsicFunction - returns true if, n, is an instrinsic function. +*) + +PROCEDURE isIntrinsicFunction (n: node) : BOOLEAN ; +BEGIN + CASE n^.kind OF + + val, + adr, + size, + tsize, + float, + trunc, + ord, + chr, + cap, + abs, + high, + length, + min, + max, + throw, + re, + im, + cmplx: RETURN TRUE + + ELSE + RETURN FALSE + END +END isIntrinsicFunction ; + + +(* + doSizeC - +*) + +PROCEDURE doSizeC (p: pretty; n: node) ; +BEGIN + assert (isUnary (n)) ; + outText (p, "sizeof (") ; + doExprC (p, n^.unaryF.arg) ; + outText (p, ")") +END doSizeC ; + + +(* + doConvertC - +*) + +PROCEDURE doConvertC (p: pretty; n: node; conversion: ARRAY OF CHAR) ; +BEGIN + assert (isUnary (n)) ; + setNeedSpace (p) ; + outText (p, "(") ; + outText (p, conversion) ; + setNeedSpace (p) ; + outText (p, "(") ; + doExprC (p, n^.unaryF.arg) ; + outText (p, "))") +END doConvertC ; + + +(* not needed? + val: doValC (p, n) | + adr: doAdrC (p, n) | + size, + tsize: doSizeC (p, n) | + float: doConvertC (p, n, "(double)") | + trunc: doConvertC (p, n, "(int)") | + ord: doConvertC (p, n, "(unsigned int)") | + chr: doConvertC (p, n, "(char)") | + cap: doCapC (p, n) | + abs: doAbsC (p, n) | + high: doFuncHighC (p, n^.unaryF.arg, 1)) | + length: doLengthC (p, n) | + min: doMinC (p, n) | + max: doMaxC (p, n) | + throw: doThrowC (p, n) | + re: doReC (p, n) | + im: doImC (p, n) | + cmplx: doCmplx (p, n) +*) + + (* getFuncFromExpr - *) @@ -10526,10 +10700,7 @@ VAR t: node ; BEGIN assert (isFuncCall (n)) ; - IF isIntrinsic (n) - THEN - doIntrinsicC (p, n) - ELSIF isProcedure (n^.funccallF.function) + IF isProcedure (n^.funccallF.function) THEN doFQDNameC (p, n^.funccallF.function, TRUE) ; setNeedSpace (p) ; @@ -11013,6 +11184,9 @@ BEGIN ELSIF isWhile (s) THEN doWhileC (p, s) + ELSIF isIntrinsic (s) + THEN + doIntrinsicC (p, s) ELSIF isFuncCall (s) THEN doFuncCallC (p, s) @@ -11097,7 +11271,7 @@ END includeParameters ; PROCEDURE isHalt (n: node) : BOOLEAN ; BEGIN - RETURN (n^.funccallF.function = haltN) OR (n^.funccallF.function^.kind = halt) + RETURN n^.kind = halt END isHalt ; @@ -12130,6 +12304,10 @@ BEGIN (* expressions. *) componentref : RETURN walkComponentRef (l, n) | pointerref : RETURN walkPointerRef (l, n) | + not, + abs, + min, + max, chr, cap, ord, @@ -12215,6 +12393,7 @@ END tryCompleteFromPartial ; PROCEDURE visitUnary (v: alist; n: node; p: nodeProcedure) ; BEGIN + assert (isUnary (n)) ; WITH n^.unaryF DO visitNode (v, arg, p) ; visitNode (v, resultType, p) @@ -12848,6 +13027,17 @@ BEGIN END visitSetValue ; +(* + visitIntrinsic - +*) + +PROCEDURE visitIntrinsic (v: alist; n: node; p: nodeProcedure) ; +BEGIN + assert (isIntrinsic (n)) ; + visitNode (v, n^.intrinsicF.args, p) +END visitIntrinsic ; + + (* visitDependants - helper procedure function called from visitNode. node n has just been visited, this procedure will @@ -12866,14 +13056,15 @@ BEGIN return : visitReturn (v, n, p) | stmtseq : visitStmtSeq (v, n, p) | comment : | - halt : (* handled in funccall. *) | - new : (* handled in funccall. *) | - dispose : (* handled in funccall. *) | - length : (* handled in funccall. *) | - inc : (* handled in funccall. *) | - dec : (* handled in funccall. *) | - incl : (* handled in funccall. *) | - excl : (* handled in funccall. *) | + throw, + halt, + new, + dispose, + length, + inc, + dec, + incl, + excl : visitIntrinsic (v, n, p) | boolean : visitBoolean (v, n, p) | nil, false, @@ -12962,29 +13153,28 @@ BEGIN div, mod, mult, - divide : visitBinary (v, n, p) | - re, - im, - abs, - chr, - cap, - high, - ord, - float, - trunc, - not, - neg, - adr, - size, - tsize, - min, - max, - throw, - constexp, - deref : visitUnary (v, n, p) | - identlist : | - vardecl : visitVarDecl (v, n, p) | - setvalue : visitSetValue (v, n, p) + divide : visitBinary (v, n, p) | + re : visitUnary (v, n, p) | + im : visitUnary (v, n, p) | + abs : visitUnary (v, n, p) | + chr : visitUnary (v, n, p) | + cap : visitUnary (v, n, p) | + high : visitUnary (v, n, p) | + ord : visitUnary (v, n, p) | + float : visitUnary (v, n, p) | + trunc : visitUnary (v, n, p) | + not : visitUnary (v, n, p) | + neg : visitUnary (v, n, p) | + adr : visitUnary (v, n, p) | + size : visitUnary (v, n, p) | + tsize : visitUnary (v, n, p) | + min : visitUnary (v, n, p) | + max : visitUnary (v, n, p) | + constexp : visitUnary (v, n, p) | + deref : visitUnary (v, n, p) | + identlist : | + vardecl : visitVarDecl (v, n, p) | + setvalue : visitSetValue (v, n, p) END END visitDependants ; @@ -14885,6 +15075,14 @@ PROCEDURE addGenericBody (n, c: node); BEGIN CASE n^.kind OF + throw, + halt, + new, + dispose, + inc, + dec, + incl, + excl : n^.intrinsicF.intrinsicComment.body := c | funccall : n^.funccallF.funccallComment.body := c | return : n^.returnF.returnComment.body := c | assignment: n^.assignmentF.assignComment.body := c | @@ -14906,6 +15104,14 @@ PROCEDURE addGenericAfter (n, c: node); BEGIN CASE n^.kind OF + throw, + halt, + new, + dispose, + inc, + dec, + incl, + excl : n^.intrinsicF.intrinsicComment.after := c | funccall : n^.funccallF.funccallComment.after := c | return : n^.returnF.returnComment.after := c | assignment: n^.assignmentF.assignComment.after := c | @@ -15892,7 +16098,6 @@ BEGIN float, trunc, ord, - throw, not, neg, adr, --- a/src/gcc/gm2/tools-src/array2index.py +++ b/src/gcc/gm2/tools-src/array2index.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 # Copyright (C) 2010 # Free Software Foundation, Inc. @@ -35,7 +35,7 @@ lines = [] # global copy of the input lines of text. # def printf (format, *args): - print str(format) % args, + print(str(format) % args, end=' ') # @@ -43,7 +43,7 @@ def printf (format, *args): # def fatal (format, *args): - print str(format) % args, + print(str(format) % args, end=' ') os.sys.exit(1) # @@ -51,7 +51,7 @@ def fatal (format, *args): # def debug(s): - print "*", s, "*" + print("*", s, "*") # # putNext - pushes, i, to be the next line read when @@ -164,20 +164,20 @@ def setVarIndent (v, n): # def adjustVar (v, d): - print v, d + print(v, d) if d != {}: if v == []: h = ['VAR\n'] t = [] - if d.has_key('pCall'): + if 'pCall' in d: v = h + [' pCall: PtrToCallFrame ;\n'] + t - if d.has_key('pSym'): + if 'pSym' in d: v = h + [' pSym: PtrToSymbol ;\n'] + t else: h = v[0] - if d.has_key('pCall'): + if 'pCall' in d: v = [h] + [' pCall: PtrToCallFrame ;\n'] + v[1:] - if d.has_key('pSym'): + if 'pSym' in d: v = [h] + [' pSym: PtrToSymbol ;\n'] + v[1:] v = setVarIndent(v, getMaxIndent(v)) return v @@ -212,7 +212,7 @@ def scanStatements (): n = getIndent(i) y = i.find('[', x)+1 z = i.find(']', y) - print "indexing ", i[y:z] + print("indexing ", i[y:z]) d['pSym'] = i[y:z] j = n * ' ' j += 'pSym := GetPsym(%s) ;\n' % i[y:z] @@ -224,7 +224,7 @@ def scanStatements (): n = getIndent(i) y = i.find('[', x)+1 z = i.find(']', y) - print "indexing ", i[y:z] + print("indexing ", i[y:z]) d['pCall'] = i[y:z] j = n * ' ' j += 'pCall := GetPcall(%s) ;\n' % i[y:z] @@ -262,7 +262,7 @@ def scanProcedure (): if isVar(i): v = [i] v += scanVar() - print v + print(v) elif isBegin(i): s, d = scanStatements() v = adjustVar(v, d) @@ -289,7 +289,7 @@ def scanLines (l): while not isEof(i): o += i if isProcedure(i): - print i + print(i) o += scanProcedure() i = getNext() return o @@ -300,7 +300,7 @@ def scanLines (l): # def Usage(): - print "array2index.py [-h][-o outputfile] inputfile" + print("array2index.py [-h][-o outputfile] inputfile") # --- a/src/gcc/gm2/tools-src/buildsyntax +++ b/src/gcc/gm2/tools-src/buildsyntax @@ -8,21 +8,21 @@ # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. -# +# # GNU Modula-2 is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with GNU Modula-2; see the file COPYING. If not, write to the # Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301, USA. +# 02110-1301, USA. # TMPFILE=/tmp/t.$$ -function buildpass1 () { +buildpass1 () { if [ -x ../bin3/pg ] ; then if ../bin3/pg ../bnf/m2.bnf > $TMPFILE ; then cat $TMPFILE | sed -e "s/WHICHPASS1/TRUE/" > P1SyntaxCheck.mod @@ -36,7 +36,7 @@ function buildpass1 () { fi } -function buildpass2 () { +buildpass2 () { if [ -x ../bin3/pg ] ; then if ../bin3/pg ../bnf/m2-2.bnf > $TMPFILE ; then cat $TMPFILE | sed -e "s/WHICHPASS2/TRUE/" > P2Build.mod @@ -50,7 +50,7 @@ function buildpass2 () { fi } -function buildpass3 () { +buildpass3 () { if [ -x ../bin3/pg ] ; then if ../bin3/pg ../bnf/m2-3.bnf > $TMPFILE ; then cat $TMPFILE | sed -e "s/WHICHPASS3/TRUE/" > P3Build.mod @@ -64,7 +64,7 @@ function buildpass3 () { fi } -function buildpassH () { +buildpassH () { if [ -x ../bin3/pg ] ; then if ../bin3/pg ../bnf/m2-h.bnf > $TMPFILE ; then cat $TMPFILE | sed -e "s/WHICHPASS3/TRUE/" > PHBuild.mod @@ -82,7 +82,7 @@ function buildpassH () { # buildsyntax - build the pass 1 parser with error recovery # -function buildsyntax () { +buildsyntax () { buildpass1 buildpass2 buildpass3 --- a/src/gcc/gm2/tools-src/def2texi.py +++ b/src/gcc/gm2/tools-src/def2texi.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 # Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 2009, # 2010 @@ -9,22 +9,21 @@ # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. -# +# # GNU Modula-2 is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with GNU Modula-2; see the file COPYING. If not, write to the # Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301, USA. +# 02110-1301, USA. # import sys import os import glob -import string import getopt libraryClassifications = [['gm2-libs','Base libraries', @@ -59,12 +58,12 @@ def displayLibraryClass(): l = libraryClassifications[i] while True: - print "@node " + l[1] + ", " + next + ", " + previous + ", " + up - print "@section " + l[1] - print "" + print("@node " + l[1] + ", " + next + ", " + previous + ", " + up) + print("@section " + l[1]) + print("") displayModules(l[1], l[0], buildDir, sourceDir) - print "" - print "@c ---------------------------------------------------------------------" + print("") + print("@c ---------------------------------------------------------------------") previous = l[1] i += 1 if i == len(libraryClassifications): @@ -80,14 +79,14 @@ def displayLibraryClass(): # def displayMenu(): - print "@menu" + print("@menu") for l in libraryClassifications: - print "* " + l[1] + "::" + l[2] - print "@end menu" + print("* " + l[1] + "::" + l[2]) + print("@end menu") - print "\n" - print "@c =====================================================================" - print "\n" + print("\n") + print("@c =====================================================================") + print("\n") # @@ -95,39 +94,38 @@ def displayMenu(): # def removeInitialComments (file, line): - while (string.find(line, "*)") == -1): + while (line.find("*)") == -1): line = file.readline() - + # # removeFields - removes Author/Date/Last edit/SYSTEM/Revision fields from a comment within the start # of a definition module # def removeFields (file, line): - while (string.find(line, "*)") == -1): - if (string.find(line, "Author") != -1) and (string.find(line, ":") != -1): + while (line.find("*)") == -1): + if (line.find("Author") != -1) and (line.find(":") != -1): line = file.readline() - elif (string.find(line, "Last edit") != -1) and (string.find(line, ":") != -1): + elif (line.find("Last edit") != -1) and (line.find(":") != -1): line = file.readline() - elif (string.find(line, "LastEdit") != -1) and (string.find(line, ":") != -1): + elif (line.find("LastEdit") != -1) and (line.find(":") != -1): line = file.readline() - elif (string.find(line, "Last update") != -1) and (string.find(line, ":") != -1): + elif (line.find("Last update") != -1) and (line.find(":") != -1): line = file.readline() - elif (string.find(line, "Date") != -1) and (string.find(line, ":") != -1): + elif (line.find("Date") != -1) and (line.find(":") != -1): line = file.readline() - elif (string.find(line, "Title") != -1) and (string.find(line, ":") != -1): + elif (line.find("Title") != -1) and (line.find(":") != -1): line = file.readline() - elif (string.find(line, "Revision") != -1) and (string.find(line, ":") != -1): + elif (line.find("Revision") != -1) and (line.find(":") != -1): line = file.readline() - elif (string.find(line, "System") != -1) and (string.find(line, ":") != -1) and (string.find(line, "Description:") == -1): + elif (line.find("System") != -1) and (line.find(":") != -1) and (line.find("Description:") == -1): line = file.readline() - elif (string.find(line, "SYSTEM") != -1) and (string.find(line, ":") != -1) and (string.find(line, "Description:") == -1): + elif (line.find("SYSTEM") != -1) and (line.find(":") != -1) and (line.find("Description:") == -1): line = file.readline() else: - print string.replace(string.replace(string.rstrip(line), - "{", "@{"), "}", "@}") + print(line.rstrip().replace("{", "@{").replace("}", "@}")) line = file.readline() - print string.rstrip(line) + print(line.rstrip()) # @@ -136,8 +134,8 @@ def removeFields (file, line): def checkIndex (line): global inVar, inType, inConst - - words = string.split(line) + + words = line.split() procedure = "" if (len(words)>1) and (words[0] == "PROCEDURE"): inConst = False @@ -168,48 +166,48 @@ def checkIndex (line): inVar = False if inVar: - words = string.split(line, ',') + words = line.split(',') for word in words: - word = string.lstrip(word) + word = word.lstrip() if word != "": - if string.find(word, ':') == -1: - print "@findex " + word + " (var)" + if word.find(':') == -1: + print("@findex " + word + " (var)") elif len(word)>0: - var = string.split(word, ':') + var = word.split(':') if len(var)>0: - print "@findex " + var[0] + " (var)" + print("@findex " + var[0] + " (var)") if inType: - words = string.lstrip(line) - if string.find(words, '=') != -1: - word = string.split(words, "=") + words = line.lstrip() + if words.find('=') != -1: + word = words.split("=") if (len(word[0])>0) and (word[0][0] != '_'): - print "@findex " + string.rstrip(word[0]) + " (type)" + print("@findex " + word[0].rstrip() + " (type)") else: - word = string.split(words) + word = words.split() if (len(word)>1) and (word[1] == ';'): # hidden type if (len(word[0])>0) and (word[0][0] != '_'): - print "@findex " + string.rstrip(word[0]) + " (type)" + print("@findex " + word[0].rstrip() + " (type)") if inConst: - words = string.split(line, ';') + words = line.split(';') for word in words: - word = string.lstrip(word) + word = word.lstrip() if word != "": - if string.find(word, '=') != -1: - var = string.split(word, '=') + if word.find('=') != -1: + var = word.split('=') if len(var)>0: - print "@findex " + var[0] + " (const)" + print("@findex " + var[0] + " (const)") if procedure != "": - name = string.split(procedure, "(") + name = procedure.split("(") if name[0] != "": proc = name[0] if proc[-1] == ";": proc = proc[:-1] if proc != "": - print "@findex " + proc + print("@findex " + proc) # @@ -217,40 +215,39 @@ def checkIndex (line): # def parseDefinition (dir, source, build, file, needPage): - print "" + print("") f = open(findFile(dir, build, source, file), 'r') initState() line = f.readline() - while (string.find(line, "(*") != -1): + while (line.find("(*") != -1): removeInitialComments(f, line) line = f.readline() - while (string.find(line, "DEFINITION") == -1): + while (line.find("DEFINITION") == -1): line = f.readline() - print "@example" - print string.rstrip(line) + print("@example") + print(line.rstrip()) line = f.readline() - if len(string.rstrip(line)) == 0: - print string.replace(string.replace(string.rstrip(line), - "{", "@{"), "}", "@}") + if len(line.rstrip()) == 0: + print(line.rstrip().replace("{", "@{").replace("}", "@}")) line = f.readline() - if (string.find(line, "(*") != -1): + if (line.find("(*") != -1): removeFields(f, line) else: - print string.rstrip(line) + print(line.rstrip()) else: - print string.rstrip(line) + print(line.rstrip()) line = f.readline() while line: - line = string.rstrip(line) - checkIndex(line) - print string.replace(string.replace(line, "{", "@{"), "}", "@}") + line = line.rstrip() + checkIndex(line) + print(line.replace("{", "@{").replace("}", "@}")) line = f.readline() - print "@end example" + print("@end example") if needPage: - print "@page" + print("@page") f.close() def parseModules (up, dir, build, source, listOfModules): @@ -262,10 +259,10 @@ def parseModules (up, dir, build, source, listOfModules): next = "" while i4) and (file[-4:] == '.def'): - print "* " + dir + "/" + file[:-4] + "::" + file - print "@end menu" - print "\n" + print("* " + dir + "/" + file[:-4] + "::" + file) + print("@end menu") + print("\n") # @@ -347,7 +344,7 @@ def findFile (dir, build, source, file): name2 = os.path.join(os.path.join(source, dir), file) if os.path.exists(name2): return name2 - print "file cannot be found in either " + name1 + " or " + name2 + print("file cannot be found in either " + name1 + " or " + name2) os.sys.exit(1) @@ -367,7 +364,7 @@ def displayModules(up, dir, build, source): listOfFiles += os.listdir(os.path.join(source, dir)) if os.path.exists(os.path.join(source, dir)): listOfFiles += os.listdir(os.path.join(build, dir)) - listOfFiles = dict.fromkeys(listOfFiles).keys() + listOfFiles = list(dict.fromkeys(listOfFiles).keys()) listOfFiles.sort() listOfModules = [] for file in listOfFiles: @@ -377,21 +374,21 @@ def displayModules(up, dir, build, source): listOfModules.sort() parseModules(up, dir, build, source, listOfModules) else: - print "directory " + dir + " not found in either " + build + " or " + source + print("directory " + dir + " not found in either " + build + " or " + source) def displayCopyright (): - print "@c Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008" - print "@c Free Software Foundation, Inc." - print """ + print("@c Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008") + print("@c Free Software Foundation, Inc.") + print(""" @c Permission is granted to copy, distribute and/or modify this document @c under the terms of the GNU Free Documentation License, Version 1.2 or @c any later version published by the Free Software Foundation. -""" +""") def Usage(): - print "def2texi.py [-h][-bbuilddir][-uupnode][-ffilename]" - + print("def2texi.py [-h][-bbuilddir][-uupnode][-ffilename]") + def collectArgs(): buildDir="." sourceDir="." --- a/src/gcc/gm2/tools-src/gensum.py +++ b/src/gcc/gm2/tools-src/gensum.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 # # gensum.py a utility for summarizing the regression tests into html. # @@ -59,9 +59,9 @@ class testcase: def usage (code): global noColumns - print "gensum [-h] [-c number] filename.sum {filename.sum}" - print " -c number of columns per architectural table (default", noColumns, ")" - print " -h help" + print("gensum [-h] [-c number] filename.sum {filename.sum}") + print(" -c number of columns per architectural table (default", noColumns, ")") + print(" -h help") sys.exit (code) @@ -104,18 +104,18 @@ def scanner (name, function): def addPassResult (name, varient): global regressionTests, configuration, passStats - if not regressionTests.has_key (configuration): + if configuration not in regressionTests: regressionTests[configuration] = {} arch = regressionTests[configuration] - if arch.has_key (name): + if name in arch: t = arch[name] else: t = testcase (name) t.addPass (varient) arch[name] = t regressionTests[configuration] = arch - if passStats.has_key (configuration): + if configuration in passStats: passStats[configuration] += 1 else: passStats[configuration] = 1 @@ -128,18 +128,18 @@ def addPassResult (name, varient): def addFailResult (name, varient): global regressionTests, configuration, failStats - if not regressionTests.has_key (configuration): + if configuration not in regressionTests: regressionTests[configuration] = {} arch = regressionTests[configuration] - if arch.has_key (name): + if name in arch: t = arch[name] else: t = testcase (name) t.addFail (varient) arch[name] = t regressionTests[configuration] = arch - if failStats.has_key (configuration): + if configuration in failStats: failStats[configuration] += 1 else: failStats[configuration] = 1 @@ -153,18 +153,18 @@ def addFailResult (name, varient): def addUnresolvedResult (name, varient, reason): global regressionTests, configuration, unresolvedStats - if not regressionTests.has_key (configuration): + if configuration not in regressionTests: regressionTests[configuration] = {} arch = regressionTests[configuration] - if arch.has_key (name): + if name in arch: t = arch[name] else: t = testcase (name) t.addUnresolved (varient, reason) arch[name] = t regressionTests[configuration] = arch - if unresolvedStats.has_key (configuration): + if configuration in unresolvedStats: unresolvedStats[configuration] += 1 else: unresolvedStats[configuration] = 1 @@ -239,20 +239,20 @@ def processLine(line): # def printRow (testcase, arch, option): - if regressionTests[arch].has_key (testcase): + if testcase in regressionTests[arch]: t = regressionTests[arch][testcase] if option in t.getPasses (): - print '', string.join (option, ' '), '', + print('', string.join (option, ' '), '', end=' ') elif option in t.getFails(): - print '', string.join (option, ' '), '', + print('', string.join (option, ' '), '', end=' ') elif option in t.getUnresolved(): - print '', string.join (option, ' '), '', + print('', string.join (option, ' '), '', end=' ') elif option == []: - print '', + print('', end=' ') else: - print '', + print('', end=' ') else: - print '', + print('', end=' ') # @@ -263,9 +263,9 @@ def getListOfTests (): global regressionTests list = [] - for arch in regressionTests.keys (): + for arch in list(regressionTests.keys ()): t = regressionTests[arch] - for u in t.keys (): + for u in list(t.keys ()): if not (u in list): list += [u] return list @@ -281,9 +281,9 @@ def getListOfOptions (testcase): optlist = [] total = 0 - for arch in regressionTests.keys (): + for arch in list(regressionTests.keys ()): t = regressionTests[arch] - if t.has_key (testcase): + if testcase in t: u = t[testcase] for p in u.getPasses () + u.getFails () + u.getUnresolved (): if not (p in optlist): @@ -314,87 +314,87 @@ def printResults(): global target, configuration, author, date, regressionTests, noColumns global passStats, failStats, unresolvedStats - print "" - print "GNU Modula-2 regression tests" - print "" - print "" - print "

", - print "GNU Modula-2 regression tests", - print "

" - print "" - - print '

' - print '' - print '' - print '' - print '' - print '' - print '' - print '' - print '
Key
ColourMeaning
Pass
Fail
Unresolved due to a prior error
Not tested
Entire testcase not tested on this platform

' - print '' - - archList = regressionTests.keys () - print "

", - print "Summary", - print "

" - print '

' - print '', - print '', + print("") + print("GNU Modula-2 regression tests") + print("") + print("") + print("

", end=' ') + print("GNU Modula-2 regression tests", end=' ') + print("

") + print("") + + print('

Status
') + print('') + print('') + print('') + print('') + print('') + print('') + print('') + print('
Key
ColourMeaning
Pass
Fail
Unresolved due to a prior error
Not tested
Entire testcase not tested on this platform

') + print('') + + archList = list(regressionTests.keys ()) + print("

", end=' ') + print("Summary", end=' ') + print("

") + print('

') + print('', end=' ') + print('', end=' ') for arch in archList: - print '', - print '' - print '', + print('', end=' ') + print('') + print('', end=' ') for arch in archList: - if passStats.has_key (arch): - print '" + if arch in passStats: + print('") else: - print '' - print '' - print '', + print('') + print('') + print('', end=' ') for arch in archList: - if failStats.has_key (arch): - print '" + if arch in failStats: + print('") else: - print '' - print '' - print '', + print('') + print('') + print('', end=' ') for arch in archList: - if unresolvedStats.has_key (arch): - print '" + if arch in unresolvedStats: + print('") else: - print '' - print '' - print '
Status', arch, '
', arch, '
', passStats[arch], "', passStats[arch], "none
none
', failStats[arch], "', failStats[arch], "none
none
', unresolvedStats[arch], "', unresolvedStats[arch], "none

' + print('none') + print('') + print('

') - print "

", - print "GNU Modula-2 regression test results", - print "

" + print("

", end=' ') + print("GNU Modula-2 regression test results", end=' ') + print("

") testlist = getListOfTests () for testcase in testlist: total, optlist = getListOfOptions (testcase) if total > 0: - print '

' - print '') + print('
', + print('

') + print('' + print(heading, '') for arch in archList: - print '', + print('', end=' ') if total % noColumns != 0: total = ((total / noColumns) +1) * noColumns for count in range (0, total, noColumns): - print '', + print('', end=' ') for arch in archList: for c in range (count, count+noColumns): if c < len (optlist): printRow (testcase, arch, optlist[c]) else: printRow (testcase, arch, []) - print '' - print '
', end=' ') heading = getHeading (testcase) - print heading, '
', arch, '', arch, '

' - print '' + print('

') + print('') target = "" --- a/src/gcc/gm2/tools-src/makeSystem +++ b/src/gcc/gm2/tools-src/makeSystem @@ -19,7 +19,7 @@ # Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *) -function Usage () { +Usage () { echo "Usage: makesystem dialectflag SYSTEM.def SYSTEM.mod librarypath compiler" } @@ -41,7 +41,7 @@ if [ "$DIALECT" != "-fiso" -a "$DIALECT" != "-fpim" ] ; then exit 1 fi -function displayExportedTypes () { +displayExportedTypes () { n=1 c=0 for i in ${types} ; do @@ -60,24 +60,24 @@ function displayExportedTypes () { echo " " >> ${OUTPUTFILE} } -function displayBuiltinTypes () { +displayBuiltinTypes () { for i in ${types} ; do echo " $i ; " >> ${OUTPUTFILE} done } -function displayStart () { +displayStart () { sed -e "1,/@SYSTEM_DATATYPES@/!d" < ${SYSTEMDEF} | \ sed -e "/@SYSTEM_DATATYPES@/d" >> ${OUTPUTFILE} } -function displayMiddle () { +displayMiddle () { sed -e "1,/@SYSTEM_DATATYPES@/d" < ${SYSTEMDEF} | \ sed -e "1,/@SYSTEM_TYPES@/!d" | \ sed -e "/@SYSTEM_TYPES@/d" >> ${OUTPUTFILE} } -function displayEnd () { +displayEnd () { sed -e "1,/@SYSTEM_TYPES@/d" < ${SYSTEMDEF} >> ${OUTPUTFILE} } --- a/src/gcc/gm2/tools-src/makeconfigure +++ b/src/gcc/gm2/tools-src/makeconfigure @@ -8,16 +8,16 @@ # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. -# +# # GNU Modula-2 is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with GNU Modula-2; see the file COPYING. If not, write to the # Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301, USA. +# 02110-1301, USA. # # @@ -25,13 +25,13 @@ # file: # # gm2s/386-gas/M2Configure.def -# +# # # create configuration constant # -function EmitConst () { +EmitConst () { echo " " $1 "=" $2 "; (* automatically generated *)" >> $DESTINATION echo "" >> $DESTINATION } @@ -40,7 +40,7 @@ function EmitConst () { # remove the old configuration file and create new empty ones # -function Initialize () { +Initialize () { /bin/rm -f $DESTINATION touch $DESTINATION } @@ -50,7 +50,7 @@ function Initialize () { # ModulePrologue - write the start of the definition module. # -function ModulePrologue () { +ModulePrologue () { cat >> $DESTINATION << EOF DEFINITION MODULE M2Configure ; @@ -113,7 +113,7 @@ EOF # ModuleEpilogue - terminates the definition module. # -function ModuleEpilogue () { +ModuleEpilogue () { echo "" >> $DESTINATION echo "END M2Configure." >> $DESTINATION } @@ -123,7 +123,7 @@ function ModuleEpilogue () { # work out whether we are compiling on a xenix system # -function IsSystemXenix () { +IsSystemXenix () { echo -n "are we compiling under xenix..." cat >> $DESTINATION << EOF3 (* @@ -142,7 +142,7 @@ EOF3 } -function UseUnderscoreForC () { +UseUnderscoreForC () { cat >> $DESTINATION << EOF (* UseUnderscoreForC - if true then the C compiler uses _ in front of @@ -168,7 +168,7 @@ EOF } -function UseDotForGDBLabels () { +UseDotForGDBLabels () { cat >> $DESTINATION << EOF (* UseDotForGDBLabels - if true then the C compiler produced .LBB2: for the @@ -195,7 +195,7 @@ EOF } -function UseDotForJumpLabels () { +UseDotForJumpLabels () { cat >> $DESTINATION << EOF (* UseDotForJumpLabels - if true then the C compiler produced .L2: for jump @@ -222,12 +222,12 @@ EOF } -function secondword () { +secondword () { echo $2 } -function AlignmentSize () { +AlignmentSize () { cat >> $DESTINATION << EOF (* AlignmentSize - returns the default alignment size used. @@ -247,7 +247,7 @@ EOF } -function ActivationRecordOffset () { +ActivationRecordOffset () { cat >> $DESTINATION << EOF (* ActivationRecordOffset - the number of words relative to frame pointer @@ -260,7 +260,7 @@ EOF } -function UseShortStabLineNumbers () { +UseShortStabLineNumbers () { cat >> $DESTINATION << EOF (* UseShortStabLineNumbers - if true then the C compiler produced .stabd 68,0,2 @@ -288,7 +288,7 @@ EOF } -function DefaultLibraryPath () { +DefaultLibraryPath () { cat >> $DESTINATION << EOF (* DefaultLibraryPath - defermines the default library path and creates a @@ -302,7 +302,7 @@ EOF } -function UsingGCCBackend () { +UsingGCCBackend () { cat >> $DESTINATION << EOF (* UsingGCCBackend - is the compiler being built with the GCC code generator? --- a/src/gcc/gm2/tools-src/makeversion +++ b/src/gcc/gm2/tools-src/makeversion @@ -29,7 +29,7 @@ -function doM2 () { +doM2 () { /bin/rm -f M2Version.mod cat << EOF >> M2Version.mod @@ -71,7 +71,7 @@ EOF } -function doC () { +doC () { cat < gm2version.c /* Generated by makeversion - do not edit */ @@ -95,7 +95,7 @@ EOF } -function doCP () { +doCP () { cat < gm2version.c /* Generated by makeversion - do not edit */ @@ -119,7 +119,7 @@ EOF } -function doTexi () { +doTexi () { cat < version.texi @@ -135,7 +135,7 @@ EOF progname=$0 -function usage () { +usage () { cat <20: outfile = open('tmptidy', 'w') @@ -114,7 +114,7 @@ def handleHeader (file, leader1, leader2): outfile, n = handleCopyright(outfile, l, n, leader1, leader2) outfile.writelines(l[n:]) outfile.close() - print "-> mv tmptidy", file + print(("-> mv tmptidy", file)) command = "mv tmptidy %s" % file os.system(command) return --- a/src/gcc/gm2/www/Makefile.in +++ b/src/gcc/gm2/www/Makefile.in @@ -32,7 +32,7 @@ TEXISRC = $(srcdir)/../../gm2/gm2.texi # $(objdir)/gm2/Builtins.texi \ # $(objdir)/gm2/version.texi -TEXI2HTML=python $(srcdir)/tools/texi2tr/src/texi2tr.py +TEXI2HTML=python3 $(srcdir)/tools/texi2tr/src/texi2tr.py OUTPUTS=download.html homepage.html license.html platforms.html \ about.html release.html users.html texi2tr.css \ --- a/src/gcc/gm2/www/tools/texi2tr/src/navigation.py +++ b/src/gcc/gm2/www/tools/texi2tr/src/navigation.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 # Copyright (C) 2011 # Free Software Foundation, Inc. @@ -74,15 +74,15 @@ class nodeInfo: """) - if (self.prev != "") and (self.prev != "Top") and anchors.has_key(self.prev): + if (self.prev != "") and (self.prev != "Top") and self.prev in anchors: html.raw(''' ') - if (self.next != "") and (self.next != "Top") and anchors.has_key(self.next): + if (self.__next__ != "") and (self.__next__ != "Top") and self.__next__ in anchors: html.raw(''' ') html.raw('
PrevNext
') @@ -137,7 +137,7 @@ class menuInfo: # def debugMenu (self): for m in self.list: - print m[0], m[1] + print((m[0], m[1])) # # generateMenu - issues the menu # @@ -175,15 +175,15 @@ class menuInfo: html.raw('
\n') html.raw('
    \n') for m in self.list: - if anchors.has_key(m[0]): + if m[0] in anchors: active = litab(html, anchors[m[0]], m[0], active) else: - if (len(m[1]) > 1) and (m[1][-1] == '.') and (anchors.has_key(m[1][:-1])): + if (len(m[1]) > 1) and (m[1][-1] == '.') and (m[1][:-1] in anchors): active = litab(html, anchors[m[1][:-1]], m[0], active) - elif anchors.has_key(m[1]): + elif m[1] in anchors: active = litab(html, anchors[m[1]], m[0], active) else: - print "cannot find anchor for section", m[0], "or", m[1] + print(("cannot find anchor for section", m[0], "or", m[1])) html.raw('\n
\n') html.raw('
\n') # @@ -192,15 +192,15 @@ class menuInfo: def _genLong (self, html): html.raw('\n
    \n') for m in self.list: - if anchors.has_key(m[0]): + if m[0] in anchors: liurl(html, anchors[m[0]], m[1]) else: - if (len(m[1]) > 1) and (m[1][-1] == '.') and (anchors.has_key(m[1][:-1])): + if (len(m[1]) > 1) and (m[1][-1] == '.') and (m[1][:-1] in anchors): liurl(html, anchors[m[1][:-1]], m[1]) - elif anchors.has_key(m[1]): + elif m[1] in anchors: liurl(html, anchors[m[1]], m[1]) else: - print "cannot find anchor for section", m[0], "or", m[1] + print(("cannot find anchor for section", m[0], "or", m[1])) html.raw('
\n') # @@ -210,8 +210,8 @@ class menuInfo: def anchor (html, label): global anchors - if anchors.has_key(label): - print "node", label, "already exists" + if label in anchors: + print(("node", label, "already exists")) anchors[label] = html.getNodeLink() s = '\n' html.raw(s) --- a/src/gcc/gm2/www/tools/texi2tr/src/outputdev.py +++ b/src/gcc/gm2/www/tools/texi2tr/src/outputdev.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 # Copyright (C) 2011 # Free Software Foundation, Inc. @@ -26,10 +26,10 @@ import config # html tag -null_tag, title_tag, header1_tag, header2_tag, header3_tag, header4_tag, center_tag, paragraph_tag, preformatted_tag, teletype_tag, italic_tag, bold_tag, no_tag = range(13) +null_tag, title_tag, header1_tag, header2_tag, header3_tag, header4_tag, center_tag, paragraph_tag, preformatted_tag, teletype_tag, italic_tag, bold_tag, no_tag = list(range(13)) # html state machine -init_state, known_state, end_state, copy_state, white_state, nf_state = range(6) +init_state, known_state, end_state, copy_state, white_state, nf_state = list(range(6)) # char2code contains all html character codes char2code = {} @@ -166,7 +166,7 @@ class htmlDevice: # def _encodeChar (self, c): global char2code - if char2code.has_key(c): + if c in char2code: self.raw(char2code[c]) else: self.raw(c) @@ -200,11 +200,11 @@ class htmlDevice: if config.multipleFragments: self.output = open(name, 'w') if config.debugFragments: - print - print "----------------------------------------------" - print name - print "----------------------------------------------" - print + print() + print("----------------------------------------------") + print(name) + print("----------------------------------------------") + print() self.output = sys.stdout self.fragNo += 1 self.deviceHeader() @@ -526,10 +526,10 @@ class htmlDevice: f = os.path.join(i, filename) if os.path.exists(f) and os.path.isfile(f): return open(f, 'r').read() - print "cannot open", description + print(("cannot open", description)) sys.exit(0) except: - print "cannot open", description + print(("cannot open", description)) sys.exit(0) # # emitMenuTitle - --- a/src/gcc/gm2/www/tools/texi2tr/src/texi2tr.py +++ b/src/gcc/gm2/www/tools/texi2tr/src/texi2tr.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 # Copyright (C) 2011 # Free Software Foundation, Inc. @@ -54,7 +54,7 @@ indexSections = {} html = None # output state -ignore, passthrough, arguments, menu = range(4) +ignore, passthrough, arguments, menu = list(range(4)) currentMenu = navigation.menuInfo(True) @@ -65,7 +65,7 @@ currentMenu = navigation.menuInfo(True) # def printf (format, *args): - print str(format) % args, + print(str(format) % args, end=' ') # @@ -75,7 +75,7 @@ def printf (format, *args): def debugf (format, *args): global debugging if debugging: - print str(format) % args, + print(str(format) % args, end=' ') # @@ -85,7 +85,7 @@ def debugf (format, *args): def verbosef (format, *args): global verbose if verbose: - print str(format) % args, + print(str(format) % args, end=' ') # @@ -93,10 +93,10 @@ def verbosef (format, *args): # def Usage (): - print "texi2tr [-h] [-v] [-Iincludepath] [-Ttemplatepath] [-r rootname.html] [-b basename-%d.html] filename.texi" - print " produces html from the texinfo filename.texi" - print " -h help" - print " -v verbose" + print("texi2tr [-h] [-v] [-Iincludepath] [-Ttemplatepath] [-r rootname.html] [-b basename-%d.html] filename.texi") + print(" produces html from the texinfo filename.texi") + print(" -h help") + print(" -v verbose") sys.exit(0) @@ -206,7 +206,7 @@ def pushArg (init): global argStack, debugging argStack = [init] + argStack if debugging: - print "pushArg: argStack", argStack + print("pushArg: argStack", argStack) # @@ -222,7 +222,7 @@ def popArg (): else: argStack = [] if debugging: - print "popArg: argStack", argStack + print("popArg: argStack", argStack) return value @@ -279,7 +279,7 @@ def parseArgs (contents, i, delim): def call (command, args, state): global functions - if functions.has_key(command): + if command in functions: return functions[command](args, state) else: error("unknown command '" + command + "'") @@ -428,7 +428,7 @@ def doSet (content, state): def doValue (content, state): global values - if values.has_key(content): + if content in values: return values[content], state else: error('unknown value ' + content) @@ -548,7 +548,7 @@ def doIgnore (content, state): def pushState (keyword, state): global statementStack - if statementStack.has_key(keyword): + if keyword in statementStack: statementStack[keyword] = [state] + statementStack[keyword] else: statementStack[keyword] = [state] @@ -568,11 +568,11 @@ def doConsume (content, state, keyword): def doEnd (content, state): global statementStack, endFunctions keyword = content.split()[0] - if statementStack.has_key(keyword): + if keyword in statementStack: if len(statementStack[keyword]) == 0: error("unexpected end '" + keyword + "'") else: - if endFunctions.has_key(keyword): + if keyword in endFunctions: endFunctions[keyword](state) state = popState(keyword) else: @@ -666,7 +666,7 @@ def doChapter (content, state): def addSectionAnchor (content): global html, indexSections - if indexSections.has_key(content): + if content in indexSections: error('section name "' + content + '" already exists') else: indexSections[content] = html.sectionAnchor(content) @@ -986,7 +986,7 @@ def doFindex (content, state): if state == ignore: return skipLine (content, state) - if indexFunc.has_key(content): + if content in indexFunc: indexFunc[content] += [html.getLink()] else: indexFunc[content] = [html.getLink()] @@ -1028,7 +1028,7 @@ def generateFunctionIndex (html): html.openDiv().flushDiv() html.paraBegin() - for k,v in sorted([(key, value) for (key,value) in indexFunc.items()]): + for k,v in sorted([(key, value) for (key,value) in list(indexFunc.items())]): html.write(k) html.write(': ') for n in range(len(v)): @@ -1051,7 +1051,7 @@ def generateSectionIndex (html): html.paraBegin() html.write('Alphabetically sorted list of contents') html.raw('
\n') - for k,v in sorted([(key, value) for (key,value) in indexSections.items()]): + for k,v in sorted([(key, value) for (key,value) in list(indexSections.items())]): html.raw('') --- a/src/gcc/testsuite/gm2/calling-c/datatypes/unbounded/run/pass/gm2.exp +++ b/src/gcc/testsuite/gm2/calling-c/datatypes/unbounded/run/pass/gm2.exp @@ -27,12 +27,12 @@ set gm2src ${srcdir}/../gm2 gm2_init_pim "${srcdir}/gm2/calling-c/datatypes/unbounded/run/pass" -set XGCC [lookfor_file $tmpdir xgcc]; +set XGCC [lookfor_file $rootme xgcc]; gm2_link_with "c.o" set output [exec rm -f c.o] -set output [exec ${XGCC} -B[file dirname $tmpdir] -g -c $srcdir/gm2/calling-c/datatypes/unbounded/run/pass/c.c -o c.o] +set output [exec ${XGCC} -B[file dirname $rootme]/gcc -g -c $srcdir/gm2/calling-c/datatypes/unbounded/run/pass/c.c -o c.o] foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] { # If we're only testing specific files and this isn't one of them, skip it. --- a/src/gcc/testsuite/gm2/errors/fail/gm2.exp +++ b/src/gcc/testsuite/gm2/errors/fail/gm2.exp @@ -22,7 +22,7 @@ if $tracelevel then { # load support procs load_lib gm2-torture.exp -gm2_init_pim "${srcdir}/gm2/errors/fail" -Wpedantic -Wstudents +gm2_init_pim "${srcdir}/gm2/errors/fail" -Wpedantic -Wstudents -Wunused-variable foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] { # If we're only testing specific files and this isn't one of them, skip it. --- a/src/gcc/testsuite/gm2/examples/callingC/run/pass/gm2.exp +++ b/src/gcc/testsuite/gm2/examples/callingC/run/pass/gm2.exp @@ -13,7 +13,7 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. if $tracelevel then { strace $tracelevel @@ -26,11 +26,11 @@ set gm2src ${srcdir}/../gm2 gm2_init_iso "$srcdir/gm2/examples/callingC/run/pass" -set XGCC [lookfor_file $tmpdir xgcc]; +set XGCC [lookfor_file $rootme xgcc]; gm2_link_with c.o set output [exec rm -f c.o] -set output [exec ${XGCC} -B[file dirname $tmpdir] -g -c $srcdir/gm2/examples/callingC/run/pass/c.c -o c.o] +set output [exec ${XGCC} -B[file dirname $rootme]/gcc -g -c $srcdir/gm2/examples/callingC/run/pass/c.c -o c.o] foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] { --- a/src/gcc/testsuite/gm2/exceptions/run/pass/gm2.exp +++ b/src/gcc/testsuite/gm2/exceptions/run/pass/gm2.exp @@ -25,11 +25,11 @@ load_lib prune.exp load_lib gm2-torture.exp -set XGPP [lookfor_file $tmpdir xg++]; +set XGPP [lookfor_file $rootme xg++]; set output [exec rm -f cpp.o mycpp.o] -set output [exec ${XGPP} -B[file dirname $tmpdir] -g -c $srcdir/gm2/exceptions/run/pass/cpp.cpp] -set output [exec ${XGPP} -B[file dirname $tmpdir] -g -c $srcdir/gm2/exceptions/run/pass/mycpp.cpp] +set output [exec ${XGPP} -B[file dirname $rootme]/gcc -g -c $srcdir/gm2/exceptions/run/pass/cpp.cpp] +set output [exec ${XGPP} -B[file dirname $rootme]/gcc -g -c $srcdir/gm2/exceptions/run/pass/mycpp.cpp] # # notice this uses PIM libraries with exceptions - this is a useful test. --- a/src/gcc/testsuite/gm2/extensions/run/pass/gm2.exp +++ b/src/gcc/testsuite/gm2/extensions/run/pass/gm2.exp @@ -13,7 +13,7 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. if $tracelevel then { strace $tracelevel @@ -28,10 +28,10 @@ gm2_init_pim "${srcdir}/gm2/extensions/run/pass" -fsoft-check-all gm2_link_with cvararg.o -set XGCC [lookfor_file $tmpdir xgcc]; +set XGCC [lookfor_file $rootme xgcc]; set output [exec rm -f cvararg.o] -set output [exec ${XGCC} -B[file dirname $tmpdir] -g -c $srcdir/gm2/extensions/run/pass/cvararg.c -o cvararg.o] +set output [exec ${XGCC} -B[file dirname $rootme]/gcc -g -c $srcdir/gm2/extensions/run/pass/cvararg.c -o cvararg.o] foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] { --- a/src/gcc/testsuite/gm2/imports/run/pass/gm2.exp +++ b/src/gcc/testsuite/gm2/imports/run/pass/gm2.exp @@ -13,7 +13,7 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. if $tracelevel then { strace $tracelevel @@ -29,7 +29,7 @@ gm2_init_pim "${srcdir}/gm2/imports/run/pass" gm2_link_with "-lgm2" foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] { - set output [exec ../xgm2 -B../ -g -c "-I${gccpath}/libgm2/libpim:${gm2src}/gm2-libs:${srcdir}/gm2/imports/run/pass" -fpim ${srcdir}/gm2/imports/run/pass/c.mod] + set output [exec ../../xgm2 -B../../ -g -c "-I${gccpath}/libgm2/libpim:${gm2src}/gm2-libs:${srcdir}/gm2/imports/run/pass" -fpim ${srcdir}/gm2/imports/run/pass/c.mod] # If we're only testing specific files and this isn't one of them, skip it. if ![runtest_file_p $runtests $testcase] then { --- a/src/gcc/testsuite/gm2/iso/run/pass/unbounded.mod +++ b/src/gcc/testsuite/gm2/iso/run/pass/unbounded.mod @@ -20,12 +20,13 @@ MODULE unbounded ; FROM libc IMPORT exit, printf ; FROM SYSTEM IMPORT ADR ; + PROCEDURE Assert (b: BOOLEAN; f: ARRAY OF CHAR; l: CARDINAL) ; BEGIN IF NOT b THEN - printf("%s:%d:failure\n", ADR(f), l) ; - exit(1) + printf ("%s:%d:failure\n", ADR (f), l) ; + exit (1) END END Assert ; @@ -34,18 +35,35 @@ PROCEDURE test (VAR a: ARRAY OF ARRAY OF CHAR) ; VAR m, n: CARDINAL ; BEGIN - m := HIGH(a) ; - n := HIGH(a[0]) ; - printf("m = %d, n = %d\n", m, n); + m := HIGH (a) ; + n := HIGH (a[0]) ; + printf ("m = %d, n = %d\n", m, n); a[1, 2] := 'a' ; a[2, 1] := 'c' END test ; VAR - b: ARRAY [0..4], [0..5] OF CHAR ; + b : ARRAY [0..4], [0..5] OF CHAR ; + i, j: CARDINAL ; BEGIN - test(b) ; - Assert(b[1, 2]='a', __FILE__, __LINE__) ; - Assert(b[2, 1]='c', __FILE__, __LINE__) ; + FOR i := 0 TO 4 DO + FOR j := 0 TO 5 DO + b[i, j] := 'z' + END + END ; + test (b) ; + FOR i := 0 TO 4 DO + FOR j := 0 TO 5 DO + IF (i = 1) AND (j = 2) + THEN + Assert (b[1, 2] = 'a', __FILE__, __LINE__) + ELSIF (i = 2) AND (j = 1) + THEN + Assert (b[2, 1] = 'c', __FILE__, __LINE__) + ELSE + Assert (b[i, j] = 'z', __FILE__, __LINE__) + END + END + END END unbounded. --- a/src/gcc/testsuite/gm2/linking/libarchive/pass/gm2.exp +++ b/src/gcc/testsuite/gm2/linking/libarchive/pass/gm2.exp @@ -13,7 +13,7 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. if $tracelevel then { strace $tracelevel @@ -24,13 +24,13 @@ load_lib gm2-torture.exp set gm2src ${srcdir}/../gm2 -gm2_init_iso "${srcdir}/gm2/linking/libarchive/pass" +gm2_init_iso "${srcdir}/gm2/linking/libarchive/pass" -set XGCC [lookfor_file $tmpdir xgcc]; +set XGCC [lookfor_file $rootme xgcc]; gm2_link_with c.o set output [exec rm -f c.o] -set output [exec ${XGCC} -B[file dirname $tmpdir] -g -c $srcdir/gm2/linking/libarchive/pass/c.c -o c.o] +set output [exec ${XGCC} -B[file dirname $rootme]/gcc -g -c $srcdir/gm2/linking/libarchive/pass/c.c -o c.o] foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] { # If we're only testing specific files and this isn't one of them, skip it. --- a/src/gcc/testsuite/gm2/pim/run/pass/gm2.exp +++ b/src/gcc/testsuite/gm2/pim/run/pass/gm2.exp @@ -27,7 +27,7 @@ set gm2src ${srcdir}/../gm2 gm2_init_pim "${srcdir}/gm2/pim/run/pass" -fsoft-check-all foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] { - set output [exec ../xgm2 -B../ -g -c -I$srcdir/../gm2/gm2-libs -I$srcdir/gm2/pim/run/pass -I$srcdir/../gm2/gm2-compiler -I../gm2/gm2-libs -I../gm2/gm2-compiler -fpim $srcdir/gm2/pim/run/pass/sys.mod] + set output [exec ../../xgm2 -B../../ -g -c -I$srcdir/../gm2/gm2-libs -I$srcdir/gm2/pim/run/pass -I$srcdir/../gm2/gm2-compiler -I../gm2/gm2-libs -I../gm2/gm2-compiler -fpim $srcdir/gm2/pim/run/pass/sys.mod] # If we're only testing specific files and this isn't one of them, skip it. if ![runtest_file_p $runtests $testcase] then { --- a/src/gcc/testsuite/gm2/pim/run/pass/integer.mod +++ b/src/gcc/testsuite/gm2/pim/run/pass/integer.mod @@ -1,274 +0,0 @@ -(* Copyright (C) 2011 Free Software Foundation, Inc. *) -(* This file is part of GNU Modula-2. - -GNU Modula-2 is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 3, or (at your option) any later -version. - -GNU Modula-2 is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License along -with gm2; see the file COPYING. If not, write to the Free Software -Foundation, 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. *) - -MODULE integer ; - -(* - Title : integer - Author : Gaius Mulley - System : GNU Modula-2 - Date : Fri May 18 17:05:36 2012 - Revision : $Version$ - Description: simple test module to test the principles of catching signed and unsigned - integer arithmetic overflow. -*) - -FROM SYSTEM IMPORT ADDRESS ; -FROM libc IMPORT printf ; -FROM DynamicStrings IMPORT String, InitString, string, KillString, InitString ; - -CONST - Verbose = TRUE ; - SizeOfIntAndLongSame = TRUE ; - - -PROCEDURE ssub (i, j: INTEGER) ; -BEGIN - IF ((j>0) AND (i < MIN(INTEGER)+j)) OR - ((j<0) AND (i > MAX(INTEGER)+j)) - THEN - expecting(overflow, 'signed subtraction') - ELSE - expecting(none, 'signed subtraction') - END -END ssub ; - - -PROCEDURE sadd (i, j: INTEGER) ; -BEGIN - printf ("i = %d, j = %d MIN(INTEGER) = %d\n", - i, j, MIN(INTEGER)); - printf ("MIN(INTEGER) = %d, -j = %d\n", MIN(INTEGER), -j); - IF ((j = MIN(INTEGER)) AND (i < 0)) OR - ((i = MIN(INTEGER)) AND (j < 0)) OR - - ((j>0) AND (i > MAX(INTEGER)-j)) OR - ((j<0) AND (i < MIN(INTEGER)-j)) - THEN - expecting(overflow, 'signed addition') - ELSE - expecting(none, 'signed addition') - END -END sadd ; - - -(* - smallMult - -*) - -PROCEDURE smallMult (i, j: INTEGER) ; -BEGIN - IF i>0 - THEN - IF j>0 - THEN - IF i>maxInt DIV j - THEN - expecting(overflow, 'signed mult') - ELSE - expecting(none, 'signed mult') - END - ELSE - IF j0 - THEN - IF iVAL(LONGINT, maxInt)) - THEN - expecting(overflow, 'signed multiply') - ELSE - expecting(none, 'signed multiply') - END - END -END smult ; - - -(* - sneg - -*) - -PROCEDURE sneg (i: INTEGER) ; -BEGIN - IF i=minInt - THEN - expecting(overflow, 'signed negate') - ELSE - expecting(none, 'signed negate') - END -END sneg ; - - -(* - passed - -*) - -PROCEDURE expecting (e: error; a: ARRAY OF CHAR) ; -VAR - s: String ; - t: ADDRESS ; -BEGIN - WITH test[testNo] DO - IF expected#e - THEN - s := InitString(a) ; - t := string(s) ; - printf("test %s (%d) has failed\n", t, testNo) ; - s := KillString(s) - ELSIF Verbose - THEN - s := InitString(a) ; - t := string(s) ; - printf("test %s (%d) has passed\n", t, testNo) ; - s := KillString(s) - END - END -END expecting ; - - -(* - doTest - -*) - -PROCEDURE doTest ; -BEGIN - WITH test[testNo] DO - CASE op OF - - iadd : sadd(l, r) | - isub : ssub(l, r) | - ineg : sneg(l) | - imult: smult(l, r) | - idiv : | - imod : | - - END - END -END doTest ; - - -(* - doTests - -*) - -PROCEDURE doTests ; -BEGIN - testNo := 0 ; - WHILE testNo<=maxTest DO - doTest ; - INC(testNo) - END -END doTests ; - - -CONST - maxTest = 25 ; - maxInt = MAX(INTEGER) ; - minInt = MIN(INTEGER) ; - -TYPE - opcode = (iadd, isub, ineg, imult, idiv, imod) ; - error = (overflow, underflow, none) ; - - case = RECORD - l, r : INTEGER ; - op : opcode ; - expected: error ; - END ; - cases = ARRAY [0..maxTest] OF case ; - -VAR - test : cases ; - testNo: CARDINAL ; - -BEGIN - test := cases{{minInt, 0, ineg, overflow}, - (* 1 *) - {maxInt, 0, ineg, none}, - {minInt DIV 2, minInt DIV 2, iadd, none}, - {minInt DIV 2, minInt DIV 2-1, iadd, overflow}, - {maxInt DIV 2, maxInt DIV 2, iadd, none}, - (* 4 *) - {maxInt DIV 2, maxInt DIV 2+1, iadd, none}, - {maxInt DIV 2+1, maxInt DIV 2+1, iadd, overflow}, - {maxInt, 1, iadd, overflow}, - {maxInt, 0, iadd, none}, - (* 8 *) - {minInt, -1, iadd, overflow}, - {minInt, 0, iadd, none}, - {-1, maxInt, isub, none}, - {-2, maxInt, isub, overflow}, - (* 12 *) - {minInt, 1, isub, overflow}, - {minInt, 0, isub, none}, - {maxInt, -2, isub, overflow}, - {maxInt, minInt, isub, overflow}, - (* 16 *) - {0, maxInt, isub, none}, - {0, minInt, isub, overflow}, - {-1, maxInt, isub, none}, - {-2, maxInt, isub, overflow}, - (* 20 *) - {maxInt, 2, imult, overflow}, - {maxInt DIV 2, 2, imult, none}, - {minInt DIV 2, 2, imult, none}, - {minInt DIV 2-1, 2, imult, overflow}, - (* 24 *) - {maxInt DIV 3, 3, imult, none}, - {minInt DIV 3, 3, imult, none} - } ; - doTests -END integer. --- a/src/gcc/testsuite/gm2/types/run/pass/gm2.exp +++ b/src/gcc/testsuite/gm2/types/run/pass/gm2.exp @@ -13,7 +13,7 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. if $tracelevel then { strace $tracelevel @@ -24,14 +24,14 @@ load_lib gm2-torture.exp set gm2src ${srcdir}/../gm2 -gm2_init_pim "${srcdir}/gm2/types/run/pass" +gm2_init_pim "${srcdir}/gm2/types/run/pass" gm2_link_with d.o -set XGCC [lookfor_file $tmpdir xgcc]; +set XGCC [lookfor_file $rootme xgcc]; set output [exec rm -f d.o] -set output [exec ${XGCC} -B[file dirname $tmpdir] -g -c $srcdir/gm2/types/run/pass/d.c -o d.o] +set output [exec ${XGCC} -B[file dirname $rootme]/gcc -g -c $srcdir/gm2/types/run/pass/d.c -o d.o] foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] { # If we're only testing specific files and this isn't one of them, skip it. @@ -42,4 +42,4 @@ foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] { gm2-torture-execute $testcase "" "pass" } -set output [exec rm -f d.o] \ No newline at end of file +set output [exec rm -f d.o] --- a/src/gcc/testsuite/lib/gm2.exp +++ b/src/gcc/testsuite/lib/gm2.exp @@ -92,8 +92,8 @@ proc gm2_init { args } { if { $gm2_initialized == 1 } { return; } set gm2_link_libraries ""; - set GCC_UNDER_TEST [lookfor_file $tmpdir xgm2]; - append GCC_UNDER_TEST " " -B[file dirname $tmpdir] " " ${args}; + set GCC_UNDER_TEST [lookfor_file $rootme xgm2]; + append GCC_UNDER_TEST " " -B[file dirname $rootme]/gcc " " ${args}; append GCC_UNDER_TEST " " -fno-diagnostics-show-caret append GCC_UNDER_TEST " " -fno-diagnostics-show-line-numbers append GCC_UNDER_TEST " " -fdiagnostics-color=never @@ -123,7 +123,6 @@ proc gm2_init { args } { # proc gm2_target_compile_default { source dest type options } { - global tmpdir; global gluefile wrap_flags; global GCC_UNDER_TEST; global TOOL_OPTIONS; --- a/src/libgm2/ChangeLog +++ b/src/libgm2/ChangeLog @@ -1,3 +1,20 @@ +2019-11-04 Gaius Mulley + + * libgm2/libcor/Makefile.am: (MULTIOSSUBDIR) quote test. + * libgm2/libiso/Makefile.am: (MULTIOSSUBDIR) quote test. + * libgm2/libpim/Makefile.am: (MULTIOSSUBDIR) quote test. + * libgm2/liblog/Makefile.am: (MULTIOSSUBDIR) quote test. + * libgm2/libmin/Makefile.am: (MULTIOSSUBDIR) quote test. + * libgm2/libulm/Makefile.am: (MULTIOSSUBDIR) quote test. + * libgm2/libpth/Makefile.am: (MULTIOSSUBDIR) quote test. + * libgm2/libcor/Makefile.in: regenerated. + * libgm2/libiso/Makefile.in: regenerated. + * libgm2/libpim/Makefile.in: regenerated. + * libgm2/liblog/Makefile.in: regenerated. + * libgm2/libmin/Makefile.in: regenerated. + * libgm2/libulm/Makefile.in: regenerated. + * libgm2/libpth/Makefile.in: regenerated. + 2019-07-10 Gaius Mulley * libgm2/Makefile.am: use $(MAKE) rather than make. --- a/src/libgm2/libcor/Makefile.am +++ b/src/libgm2/libcor/Makefile.am @@ -21,7 +21,7 @@ toolexecdir=@toolexecdir@ MULTIDIR := $(shell $(CC) $(CFLAGS) -print-multi-directory) MULTIOSDIR := $(shell $(CC) $(CFLAGS) -print-multi-os-directory) -MULTIOSSUBDIR := $(shell if test $(MULTIOSDIR) != .; then echo /$(MULTIOSDIR); fi) +MULTIOSSUBDIR := $(shell if test x$(MULTIOSDIR) != x.; then echo /$(MULTIOSDIR); fi) inst_libdir = $(libsubdir)$(MULTISUBDIR) inst_slibdir = $(slibdir)$(MULTIOSSUBDIR) --- a/src/libgm2/libcor/Makefile.in +++ b/src/libgm2/libcor/Makefile.in @@ -383,7 +383,7 @@ version := $(shell $(CC) -dumpversion) libsubdir = $(libdir)/gcc/$(host_noncanonical)/$(version) MULTIDIR := $(shell $(CC) $(CFLAGS) -print-multi-directory) MULTIOSDIR := $(shell $(CC) $(CFLAGS) -print-multi-os-directory) -MULTIOSSUBDIR := $(shell if test $(MULTIOSDIR) != .; then echo /$(MULTIOSDIR); fi) +MULTIOSSUBDIR := $(shell if test x$(MULTIOSDIR) != x.; then echo /$(MULTIOSDIR); fi) inst_libdir = $(libsubdir)$(MULTISUBDIR) inst_slibdir = $(slibdir)$(MULTIOSSUBDIR) --- a/src/libgm2/libiso/Makefile.am +++ b/src/libgm2/libiso/Makefile.am @@ -21,7 +21,7 @@ toolexecdir=@toolexecdir@ MULTIDIR := $(shell $(CC) $(CFLAGS) -print-multi-directory) MULTIOSDIR := $(shell $(CC) $(CFLAGS) -print-multi-os-directory) -MULTIOSSUBDIR := $(shell if test $(MULTIOSDIR) != .; then echo /$(MULTIOSDIR); fi) +MULTIOSSUBDIR := $(shell if test x$(MULTIOSDIR) != x.; then echo /$(MULTIOSDIR); fi) inst_libdir = $(libsubdir)$(MULTISUBDIR) inst_slibdir = $(slibdir)$(MULTIOSSUBDIR) --- a/src/libgm2/libiso/Makefile.in +++ b/src/libgm2/libiso/Makefile.in @@ -399,7 +399,7 @@ version := $(shell $(CC) -dumpversion) libsubdir = $(libdir)/gcc/$(host_noncanonical)/$(version) MULTIDIR := $(shell $(CC) $(CFLAGS) -print-multi-directory) MULTIOSDIR := $(shell $(CC) $(CFLAGS) -print-multi-os-directory) -MULTIOSSUBDIR := $(shell if test $(MULTIOSDIR) != .; then echo /$(MULTIOSDIR); fi) +MULTIOSSUBDIR := $(shell if test x$(MULTIOSDIR) != x.; then echo /$(MULTIOSDIR); fi) inst_libdir = $(libsubdir)$(MULTISUBDIR) inst_slibdir = $(slibdir)$(MULTIOSSUBDIR) --- a/src/libgm2/liblog/Makefile.am +++ b/src/libgm2/liblog/Makefile.am @@ -21,7 +21,7 @@ toolexecdir=@toolexecdir@ MULTIDIR := $(shell $(CC) $(CFLAGS) -print-multi-directory) MULTIOSDIR := $(shell $(CC) $(CFLAGS) -print-multi-os-directory) -MULTIOSSUBDIR := $(shell if test $(MULTIOSDIR) != .; then echo /$(MULTIOSDIR); fi) +MULTIOSSUBDIR := $(shell if test x$(MULTIOSDIR) != x.; then echo /$(MULTIOSDIR); fi) inst_libdir = $(libsubdir)$(MULTISUBDIR) inst_slibdir = $(slibdir)$(MULTIOSSUBDIR) --- a/src/libgm2/liblog/Makefile.in +++ b/src/libgm2/liblog/Makefile.in @@ -388,7 +388,7 @@ version := $(shell $(CC) -dumpversion) libsubdir = $(libdir)/gcc/$(host_noncanonical)/$(version) MULTIDIR := $(shell $(CC) $(CFLAGS) -print-multi-directory) MULTIOSDIR := $(shell $(CC) $(CFLAGS) -print-multi-os-directory) -MULTIOSSUBDIR := $(shell if test $(MULTIOSDIR) != .; then echo /$(MULTIOSDIR); fi) +MULTIOSSUBDIR := $(shell if test x$(MULTIOSDIR) != x.; then echo /$(MULTIOSDIR); fi) inst_libdir = $(libsubdir)$(MULTISUBDIR) inst_slibdir = $(slibdir)$(MULTIOSSUBDIR) --- a/src/libgm2/libmin/Makefile.am +++ b/src/libgm2/libmin/Makefile.am @@ -21,7 +21,7 @@ toolexecdir=@toolexecdir@ MULTIDIR := $(shell $(CC) $(CFLAGS) -print-multi-directory) MULTIOSDIR := $(shell $(CC) $(CFLAGS) -print-multi-os-directory) -MULTIOSSUBDIR := $(shell if test $(MULTIOSDIR) != .; then echo /$(MULTIOSDIR); fi) +MULTIOSSUBDIR := $(shell if test x$(MULTIOSDIR) != x.; then echo /$(MULTIOSDIR); fi) inst_libdir = $(libsubdir)$(MULTISUBDIR) inst_slibdir = $(slibdir)$(MULTIOSSUBDIR) --- a/src/libgm2/libmin/Makefile.in +++ b/src/libgm2/libmin/Makefile.in @@ -386,7 +386,7 @@ version := $(shell $(CC) -dumpversion) libsubdir = $(libdir)/gcc/$(host_noncanonical)/$(version) MULTIDIR := $(shell $(CC) $(CFLAGS) -print-multi-directory) MULTIOSDIR := $(shell $(CC) $(CFLAGS) -print-multi-os-directory) -MULTIOSSUBDIR := $(shell if test $(MULTIOSDIR) != .; then echo /$(MULTIOSDIR); fi) +MULTIOSSUBDIR := $(shell if test x$(MULTIOSDIR) != x.; then echo /$(MULTIOSDIR); fi) inst_libdir = $(libsubdir)$(MULTISUBDIR) inst_slibdir = $(slibdir)$(MULTIOSSUBDIR) --- a/src/libgm2/libpim/Makefile.am +++ b/src/libgm2/libpim/Makefile.am @@ -21,7 +21,7 @@ toolexecdir=@toolexecdir@ MULTIDIR := $(shell $(CC) $(CFLAGS) -print-multi-directory) MULTIOSDIR := $(shell $(CC) $(CFLAGS) -print-multi-os-directory) -MULTIOSSUBDIR := $(shell if test $(MULTIOSDIR) != .; then echo /$(MULTIOSDIR); fi) +MULTIOSSUBDIR := $(shell if test x$(MULTIOSDIR) != x.; then echo /$(MULTIOSDIR); fi) inst_libdir = $(libsubdir)$(MULTISUBDIR) inst_slibdir = $(slibdir)$(MULTIOSSUBDIR) --- a/src/libgm2/libpim/Makefile.in +++ b/src/libgm2/libpim/Makefile.in @@ -395,7 +395,7 @@ version := $(shell $(CC) -dumpversion) libsubdir = $(libdir)/gcc/$(host_noncanonical)/$(version) MULTIDIR := $(shell $(CC) $(CFLAGS) -print-multi-directory) MULTIOSDIR := $(shell $(CC) $(CFLAGS) -print-multi-os-directory) -MULTIOSSUBDIR := $(shell if test $(MULTIOSDIR) != .; then echo /$(MULTIOSDIR); fi) +MULTIOSSUBDIR := $(shell if test x$(MULTIOSDIR) != x.; then echo /$(MULTIOSDIR); fi) inst_libdir = $(libsubdir)$(MULTISUBDIR) inst_slibdir = $(slibdir)$(MULTIOSSUBDIR) --- a/src/libgm2/libpim/dtoa.c +++ b/src/libgm2/libpim/dtoa.c @@ -18,7 +18,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ /* - * dtoa.c - + * dtoa.c - */ #define GM2 @@ -150,7 +150,7 @@ int dtoa_calcmaxsig (char *p, int ndigits) if (o == NULL) return strlen(p)+x; else { - strncpy(o, o+1, ndigits-(o-p)); + memmove (o, o+1, ndigits-(o-p)); return o-p+x; } } @@ -197,7 +197,7 @@ int dtoa_calcdecimal (char *p, int str_size, int ndigits) int dtoa_calcsign (char *p, int str_size) { if (p[0] == '-') { - strncpy(p, p+1, str_size-1); + memmove (p, p+1, str_size-1); return TRUE; } else return FALSE; --- a/src/libgm2/libpth/Makefile.am +++ b/src/libgm2/libpth/Makefile.am @@ -22,7 +22,7 @@ toolexecdir=@toolexecdir@ MULTIDIR := $(shell $(CC) $(CFLAGS) -print-multi-directory) MULTIOSDIR := $(shell $(CC) $(CFLAGS) -print-multi-os-directory) -MULTIOSSUBDIR := $(shell if test $(MULTIOSDIR) != .; then echo /$(MULTIOSDIR); fi) +MULTIOSSUBDIR := $(shell if test x$(MULTIOSDIR) != x.; then echo /$(MULTIOSDIR); fi) inst_libdir = $(libsubdir)$(MULTISUBDIR) inst_slibdir = $(slibdir)$(MULTIOSSUBDIR) --- a/src/libgm2/libpth/Makefile.in +++ b/src/libgm2/libpth/Makefile.in @@ -307,7 +307,7 @@ version := $(shell $(CC) -dumpversion) libsubdir = $(libdir)/gcc/$(host_noncanonical)/$(version) MULTIDIR := $(shell $(CC) $(CFLAGS) -print-multi-directory) MULTIOSDIR := $(shell $(CC) $(CFLAGS) -print-multi-os-directory) -MULTIOSSUBDIR := $(shell if test $(MULTIOSDIR) != .; then echo /$(MULTIOSDIR); fi) +MULTIOSSUBDIR := $(shell if test x$(MULTIOSDIR) != x.; then echo /$(MULTIOSDIR); fi) inst_libdir = $(libsubdir)$(MULTISUBDIR) inst_slibdir = $(slibdir)$(MULTIOSSUBDIR) --- a/src/libgm2/libulm/Makefile.am +++ b/src/libgm2/libulm/Makefile.am @@ -21,7 +21,7 @@ toolexecdir=@toolexecdir@ MULTIDIR := $(shell $(CC) $(CFLAGS) -print-multi-directory) MULTIOSDIR := $(shell $(CC) $(CFLAGS) -print-multi-os-directory) -MULTIOSSUBDIR := $(shell if test $(MULTIOSDIR) != .; then echo /$(MULTIOSDIR); fi) +MULTIOSSUBDIR := $(shell if test x$(MULTIOSDIR) != x.; then echo /$(MULTIOSDIR); fi) inst_libdir = $(libsubdir)$(MULTISUBDIR) inst_slibdir = $(slibdir)$(MULTIOSSUBDIR) --- a/src/libgm2/libulm/Makefile.in +++ b/src/libgm2/libulm/Makefile.in @@ -398,7 +398,7 @@ version := $(shell $(CC) -dumpversion) libsubdir = $(libdir)/gcc/$(host_noncanonical)/$(version) MULTIDIR := $(shell $(CC) $(CFLAGS) -print-multi-directory) MULTIOSDIR := $(shell $(CC) $(CFLAGS) -print-multi-os-directory) -MULTIOSSUBDIR := $(shell if test $(MULTIOSDIR) != .; then echo /$(MULTIOSDIR); fi) +MULTIOSSUBDIR := $(shell if test x$(MULTIOSDIR) != x.; then echo /$(MULTIOSDIR); fi) inst_libdir = $(libsubdir)$(MULTISUBDIR) inst_slibdir = $(slibdir)$(MULTIOSSUBDIR)