#! /bin/sh
# Generated from syntax.at by GNU Autoconf 2.67.
#
# Copyright (C) 2009, 2010 Free Software Foundation, Inc.
#
# This test suite is free software; the Free Software Foundation gives
# unlimited permission to copy, distribute and modify it.
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##

# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
  emulate sh
  NULLCMD=:
  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
  # is contrary to our usage.  Disable this feature.
  alias -g '${1+"$@"}'='"$@"'
  setopt NO_GLOB_SUBST
else
  case `(set -o) 2>/dev/null` in #(
  *posix*) :
    set -o posix ;; #(
  *) :
     ;;
esac
fi


as_nl='
'
export as_nl
# Printing a long string crashes Solaris 7 /usr/bin/printf.
as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
# Prefer a ksh shell builtin over an external printf program on Solaris,
# but without wasting forks for bash or zsh.
if test -z "$BASH_VERSION$ZSH_VERSION" \
    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
  as_echo='print -r --'
  as_echo_n='print -rn --'
elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
  as_echo='printf %s\n'
  as_echo_n='printf %s'
else
  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
    as_echo_n='/usr/ucb/echo -n'
  else
    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
    as_echo_n_body='eval
      arg=$1;
      case $arg in #(
      *"$as_nl"*)
	expr "X$arg" : "X\\(.*\\)$as_nl";
	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
      esac;
      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
    '
    export as_echo_n_body
    as_echo_n='sh -c $as_echo_n_body as_echo'
  fi
  export as_echo_body
  as_echo='sh -c $as_echo_body as_echo'
fi

# The user is always right.
if test "${PATH_SEPARATOR+set}" != set; then
  PATH_SEPARATOR=:
  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
      PATH_SEPARATOR=';'
  }
fi


# IFS
# We need space, tab and new line, in precisely that order.  Quoting is
# there to prevent editors from complaining about space-tab.
# (If _AS_PATH_WALK were called with IFS unset, it would disable word
# splitting by setting IFS to empty value.)
IFS=" ""	$as_nl"

# Find who we are.  Look in the path if we contain no directory separator.
case $0 in #((
  *[\\/]* ) as_myself=$0 ;;
  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
  done
IFS=$as_save_IFS

     ;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
  as_myself=$0
fi
if test ! -f "$as_myself"; then
  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
  exit 1
fi

# Unset variables that we do not need and which cause bugs (e.g. in
# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
# suppresses any "Segmentation fault" message there.  '((' could
# trigger a bug in pdksh 5.2.14.
for as_var in BASH_ENV ENV MAIL MAILPATH
do eval test x\${$as_var+set} = xset \
  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
PS1='$ '
PS2='> '
PS4='+ '

# NLS nuisances.
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE

# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH

if test "x$CONFIG_SHELL" = x; then
  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
  emulate sh
  NULLCMD=:
  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
  # is contrary to our usage.  Disable this feature.
  alias -g '\${1+\"\$@\"}'='\"\$@\"'
  setopt NO_GLOB_SUBST
else
  case \`(set -o) 2>/dev/null\` in #(
  *posix*) :
    set -o posix ;; #(
  *) :
     ;;
esac
fi
"
  as_required="as_fn_return () { (exit \$1); }
as_fn_success () { as_fn_return 0; }
as_fn_failure () { as_fn_return 1; }
as_fn_ret_success () { return 0; }
as_fn_ret_failure () { return 1; }

exitcode=0
as_fn_success || { exitcode=1; echo as_fn_success failed.; }
as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :

else
  exitcode=1; echo positional parameters were not saved.
fi
test x\$exitcode = x0 || exit 1"
  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
test \$(( 1 + 1 )) = 2 || exit 1"
  if (eval "$as_required") 2>/dev/null; then :
  as_have_required=yes
else
  as_have_required=no
fi
  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :

else
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_found=false
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
  as_found=:
  case $as_dir in #(
	 /*)
	   for as_base in sh bash ksh sh5; do
	     # Try only shells that exist, to save several forks.
	     as_shell=$as_dir/$as_base
	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
  CONFIG_SHELL=$as_shell as_have_required=yes
		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
  break 2
fi
fi
	   done;;
       esac
  as_found=false
done
$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
  CONFIG_SHELL=$SHELL as_have_required=yes
fi; }
IFS=$as_save_IFS


      if test "x$CONFIG_SHELL" != x; then :
  # We cannot yet assume a decent shell, so we have to provide a
	# neutralization value for shells without unset; and this also
	# works around shells that cannot unset nonexistent variables.
	BASH_ENV=/dev/null
	ENV=/dev/null
	(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
	export CONFIG_SHELL
	exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
fi

    if test x$as_have_required = xno; then :
  $as_echo "$0: This script requires a shell more modern than all"
  $as_echo "$0: the shells that I found on your system."
  if test x${ZSH_VERSION+set} = xset ; then
    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
  else
    $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
$0: including any error possibly output before this
$0: message. Then install a modern shell, or manually run
$0: the script under such a shell if you do have one."
  fi
  exit 1
fi
fi
fi
SHELL=${CONFIG_SHELL-/bin/sh}
export SHELL
# Unset more variables known to interfere with behavior of common tools.
CLICOLOR_FORCE= GREP_OPTIONS=
unset CLICOLOR_FORCE GREP_OPTIONS

## --------------------- ##
## M4sh Shell Functions. ##
## --------------------- ##
# as_fn_unset VAR
# ---------------
# Portably unset VAR.
as_fn_unset ()
{
  { eval $1=; unset $1;}
}
as_unset=as_fn_unset

# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
as_fn_set_status ()
{
  return $1
} # as_fn_set_status

# as_fn_exit STATUS
# -----------------
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
as_fn_exit ()
{
  set +e
  as_fn_set_status $1
  exit $1
} # as_fn_exit

# as_fn_mkdir_p
# -------------
# Create "$as_dir" as a directory, including parents if necessary.
as_fn_mkdir_p ()
{

  case $as_dir in #(
  -*) as_dir=./$as_dir;;
  esac
  test -d "$as_dir" || eval $as_mkdir_p || {
    as_dirs=
    while :; do
      case $as_dir in #(
      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
      *) as_qdir=$as_dir;;
      esac
      as_dirs="'$as_qdir' $as_dirs"
      as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
	 X"$as_dir" : 'X\(//\)[^/]' \| \
	 X"$as_dir" : 'X\(//\)$' \| \
	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$as_dir" |
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)[^/].*/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\).*/{
	    s//\1/
	    q
	  }
	  s/.*/./; q'`
      test -d "$as_dir" && break
    done
    test -z "$as_dirs" || eval "mkdir $as_dirs"
  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"


} # as_fn_mkdir_p
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
  eval 'as_fn_append ()
  {
    eval $1+=\$2
  }'
else
  as_fn_append ()
  {
    eval $1=\$$1\$2
  }
fi # as_fn_append

# as_fn_arith ARG...
# ------------------
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
  eval 'as_fn_arith ()
  {
    as_val=$(( $* ))
  }'
else
  as_fn_arith ()
  {
    as_val=`expr "$@" || test $? -eq 1`
  }
fi # as_fn_arith


# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
  as_status=$1; test $as_status -eq 0 && as_status=1
  if test "$4"; then
    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
  fi
  $as_echo "$as_me: error: $2" >&2
  as_fn_exit $as_status
} # as_fn_error

if expr a : '\(a\)' >/dev/null 2>&1 &&
   test "X`expr 00001 : '.*\(...\)'`" = X001; then
  as_expr=expr
else
  as_expr=false
fi

if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
  as_basename=basename
else
  as_basename=false
fi

as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
	 X"$0" : 'X\(//\)$' \| \
	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X/"$0" |
    sed '/^.*\/\([^/][^/]*\)\/*$/{
	    s//\1/
	    q
	  }
	  /^X\/\(\/\/\)$/{
	    s//\1/
	    q
	  }
	  /^X\/\(\/\).*/{
	    s//\1/
	    q
	  }
	  s/.*/./; q'`

if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
  as_dirname=dirname
else
  as_dirname=false
fi

# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits


  as_lineno_1=$LINENO as_lineno_1a=$LINENO
  as_lineno_2=$LINENO as_lineno_2a=$LINENO
  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
  sed -n '
    p
    /[$]LINENO/=
  ' <$as_myself |
    sed '
      s/[$]LINENO.*/&-/
      t lineno
      b
      :lineno
      N
      :loop
      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
      t loop
      s/-\n.*//
    ' >$as_me.lineno &&
  chmod +x "$as_me.lineno" ||
    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }

  # Don't try to exec as it changes $[0], causing all sort of problems
  # (the dirname of $[0] is not the place where we might find the
  # original and so on.  Autoconf is especially sensitive to this).
  . "./$as_me.lineno"
  # Exit status is that of the last command.
  exit
}

ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
  case `echo 'xy\c'` in
  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
  xy)  ECHO_C='\c';;
  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
       ECHO_T='	';;
  esac;;
*)
  ECHO_N='-n';;
esac

rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
  rm -f conf$$.dir/conf$$.file
else
  rm -f conf$$.dir
  mkdir conf$$.dir 2>/dev/null
fi
if (echo >conf$$.file) 2>/dev/null; then
  if ln -s conf$$.file conf$$ 2>/dev/null; then
    as_ln_s='ln -s'
    # ... but there are two gotchas:
    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
    # In both cases, we have to default to `cp -p'.
    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
      as_ln_s='cp -p'
  elif ln conf$$.file conf$$ 2>/dev/null; then
    as_ln_s=ln
  else
    as_ln_s='cp -p'
  fi
else
  as_ln_s='cp -p'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null

if mkdir -p . 2>/dev/null; then
  as_mkdir_p='mkdir -p "$as_dir"'
else
  test -d ./-p && rmdir ./-p
  as_mkdir_p=false
fi

if test -x / >/dev/null 2>&1; then
  as_test_x='test -x'
else
  if ls -dL / >/dev/null 2>&1; then
    as_ls_L_option=L
  else
    as_ls_L_option=
  fi
  as_test_x='
    eval sh -c '\''
      if test -d "$1"; then
	test -d "$1/.";
      else
	case $1 in #(
	-*)set "./$1";;
	esac;
	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
	???[sx]*):;;*)false;;esac;fi
    '\'' sh
  '
fi
as_executable_p=$as_test_x

# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"

# Sed expression to map a string onto a valid variable name.
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"





SHELL=${CONFIG_SHELL-/bin/sh}

# How were we run?
at_cli_args="$@"


# Not all shells have the 'times' builtin; the subshell is needed to make
# sure we discard the 'times: not found' message from the shell.
at_times_p=false
(times) >/dev/null 2>&1 && at_times_p=:

# CLI Arguments to pass to the debugging scripts.
at_debug_args=
# -e sets to true
at_errexit_p=false
# Shall we be verbose?  ':' means no, empty means yes.
at_verbose=:
at_quiet=
# Running several jobs in parallel, 0 means as many as test groups.
at_jobs=1
at_traceon=:
at_trace_echo=:
at_check_filter_trace=:

# Shall we keep the debug scripts?  Must be `:' when the suite is
# run by a debug script, so that the script doesn't remove itself.
at_debug_p=false
# Display help message?
at_help_p=false
# Display the version message?
at_version_p=false
# List test groups?
at_list_p=false
# --clean
at_clean=false
# Test groups to run
at_groups=
# Whether to rerun failed tests.
at_recheck=
# Whether a write failure occurred
at_write_fail=0

# The directory we run the suite in.  Default to . if no -C option.
at_dir=`pwd`
# An absolute reference to this testsuite script.
case $as_myself in
  [\\/]* | ?:[\\/]* ) at_myself=$as_myself ;;
  * ) at_myself=$at_dir/$as_myself ;;
esac
# Whether -C is in effect.
at_change_dir=false

# Whether to enable colored test results.
at_color=no
# List of the tested programs.
at_tested='cobc'
# List of the all the test groups.
at_groups_all=' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77'
# As many question marks as there are digits in the last test group number.
# Used to normalize the test group numbers so that `ls' lists them in
# numerical order.
at_format='??'
# Description of all the test groups.
at_help_all="1;copy.at:22;COPY: file not found;copy;
2;copy.at:42;COPY: replacement order;copy;
3;copy.at:69;COPY: separators;copy;
4;copy.at:98;COPY: partial replacement;copy;
5;copy.at:128;COPY: recursive replacement;copy;
6;definition.at:25;Invalid PROGRAM-ID;;
7;definition.at:40;Invalid PROGRAM-ID type clause (1);;
8;definition.at:55;Invalid PROGRAM-ID type clause (2);;
9;definition.at:76;Undefined data name;;
10;definition.at:93;Undefined group name;;
11;definition.at:113;Undefined data name in group;;
12;definition.at:135;Reference not a group name;;
13;definition.at:158;Incomplete 01 definition;;
14;definition.at:177;Same labels in different sections;;
15;definition.at:201;Redefinition of 01 items;;
16;definition.at:219;Redefinition of 01 and 02 items;;
17;definition.at:237;Redefinition of 02 items;;
18;definition.at:256;Redefinition of 77 items;;
19;definition.at:274;Redefinition of 01 and 77 items;;
20;definition.at:292;Redefinition of 88 items;;
21;definition.at:311;Ambiguous reference to 02 items;;
22;definition.at:336;Ambiguous reference to 02 and 03 items;;
23;definition.at:360;Ambiguous reference with qualification;;
24;definition.at:389;Unique reference with ambiguous qualifiers;;
25;definition.at:424;Undefined procedure name;;
26;definition.at:443;Redefinition of section names;;
27;definition.at:462;Redefinition of section and paragraph names;;
28;definition.at:481;Redefinition of paragraph names;;
29;definition.at:504;Ambiguous reference to paragraph name;;
30;definition.at:528;Non-matching level numbers (extension);;
31;expression.at:21;Ambiguous AND/OR;;
32;expression.at:45;START on SEQUENTIAL file;;
33;subscripts.at:31;Subscripted item requires OCCURS clause;;
34;subscripts.at:58;The number of subscripts;;
35;occurs.at:28;OCCURS with level 01, 66, 77, and 88;;
36;occurs.at:53;OCCURS with variable-occurrence data item;;
37;occurs.at:90;Nested OCCURS clause;;
38;occurs.at:136;OCCURS DEPENDING followed by another field;;
39;occurs.at:174;OCCURS DEPENDING without TO clause;;
40;redefines.at:28;REDEFINES: not following entry-name;redefines;
41;redefines.at:49;REDEFINES: level 02 by 01;redefines;
42;redefines.at:70;REDEFINES: level 03 by 02;redefines;
43;redefines.at:92;REDEFINES: level 66;redefines;
44;redefines.at:114;REDEFINES: level 88;redefines;
45;redefines.at:143;REDEFINES: lower level number;redefines;
46;redefines.at:169;REDEFINES: with OCCURS;redefines;
47;redefines.at:190;REDEFINES: with subscript;redefines;
48;redefines.at:212;REDEFINES: with variable occurrence;redefines;
49;redefines.at:247;REDEFINES: with qualification;redefines;
50;redefines.at:273;REDEFINES: multiple redefinition;redefines;
51;redefines.at:301;REDEFINES: size exceeds;redefines;
52;redefines.at:334;REDEFINES: with VALUE;redefines;
53;redefines.at:362;REDEFINES: with intervention;redefines;
54;redefines.at:391;REDEFINES: within REDEFINES;redefines;
55;value.at:43;Numeric item (integer);;
56;value.at:68;Numeric item (non-integer);;
57;value.at:90;Numeric item with picture P;;
58;value.at:121;Signed numeric literal;;
59;value.at:146;Alphabetic item;;
60;value.at:171;Alphanumeric item;;
61;value.at:192;Alphanumeric group item;;
62;value.at:226;Numeric-edited item;;
63;value.at:249;Alphanumeric-edited item;;
64;move.at:37;MOVE SPACE TO numeric or numeric-edited item;;
65;move.at:62;MOVE ZERO TO alphabetic item;;
66;move.at:87;MOVE alphabetic TO x;;
67;move.at:116;MOVE alphanumeric TO x;;
68;move.at:142;MOVE alphanumeric-edited TO x;;
69;move.at:171;MOVE numeric (integer) TO x;;
70;move.at:199;MOVE numeric (non-integer) TO x;;
71;move.at:229;MOVE numeric-edited TO x;;
72;move.at:263;Operands must be groups;;
73;move.at:295;MOVE: misc;;
74;multiply.at:28;Category check of Format 1;;
75;multiply.at:66;Category check of Format 2;;
76;multiply.at:106;Category check of literals;;
77;set.at:24;SET: misc;;
"

# at_fn_validate_ranges NAME...
# -----------------------------
# Validate and normalize the test group number contained in each variable
# NAME. Leading zeroes are treated as decimal.
at_fn_validate_ranges ()
{
  for at_grp
  do
    eval at_value=\$$at_grp
    if test $at_value -lt 1 || test $at_value -gt 77; then
      $as_echo "invalid test group: $at_value" >&2
      exit 1
    fi
    case $at_value in
      0*) # We want to treat leading 0 as decimal, like expr and test, but
	  # AS_VAR_ARITH treats it as octal if it uses $(( )).
	  # With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the
	  # expr fork, but it is not worth the effort to determine if the
	  # shell supports XSI when the user can just avoid leading 0.
	  eval $at_grp='`expr $at_value + 0`' ;;
    esac
  done
}

at_prev=
for at_option
do
  # If the previous option needs an argument, assign it.
  if test -n "$at_prev"; then
    at_option=$at_prev=$at_option
    at_prev=
  fi

  case $at_option in
  *=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;;
  *)    at_optarg= ;;
  esac

  # Accept the important Cygnus configure options, so we can diagnose typos.

  case $at_option in
    --help | -h )
	at_help_p=:
	;;

    --list | -l )
	at_list_p=:
	;;

    --version | -V )
	at_version_p=:
	;;

    --clean | -c )
	at_clean=:
	;;

    --color )
	at_color=always
	;;
    --color=* )
	case $at_optarg in
	no | never | none) at_color=never ;;
	auto | tty | if-tty) at_color=auto ;;
	always | yes | force) at_color=always ;;
	*) at_optname=`echo " $at_option" | sed 's/^ //; s/=.*//'`
	   as_fn_error $? "unrecognized argument to $at_optname: $at_optarg" ;;
	esac
	;;

    --debug | -d )
	at_debug_p=:
	;;

    --errexit | -e )
	at_debug_p=:
	at_errexit_p=:
	;;

    --verbose | -v )
	at_verbose=; at_quiet=:
	;;

    --trace | -x )
	at_traceon='set -x'
	at_trace_echo=echo
	at_check_filter_trace=at_fn_filter_trace
	;;

    [0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9])
	at_fn_validate_ranges at_option
	as_fn_append at_groups "$at_option "
	;;

    # Ranges
    [0-9]- | [0-9][0-9]- | [0-9][0-9][0-9]- | [0-9][0-9][0-9][0-9]-)
	at_range_start=`echo $at_option |tr -d X-`
	at_fn_validate_ranges at_range_start
	at_range=`$as_echo " $at_groups_all " | \
	  sed -e 's/^.* \('$at_range_start' \)/\1/'`
	as_fn_append at_groups "$at_range "
	;;

    -[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9])
	at_range_end=`echo $at_option |tr -d X-`
	at_fn_validate_ranges at_range_end
	at_range=`$as_echo " $at_groups_all " | \
	  sed -e 's/\( '$at_range_end'\) .*$/\1/'`
	as_fn_append at_groups "$at_range "
	;;

    [0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9] | \
    [0-9]-[0-9][0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9] | \
    [0-9][0-9]-[0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9][0-9][0-9] | \
    [0-9][0-9][0-9]-[0-9][0-9][0-9] | \
    [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] | \
    [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] )
	at_range_start=`expr $at_option : '\(.*\)-'`
	at_range_end=`expr $at_option : '.*-\(.*\)'`
	if test $at_range_start -gt $at_range_end; then
	  at_tmp=$at_range_end
	  at_range_end=$at_range_start
	  at_range_start=$at_tmp
	fi
	at_fn_validate_ranges at_range_start at_range_end
	at_range=`$as_echo " $at_groups_all " | \
	  sed -e 's/^.*\( '$at_range_start' \)/\1/' \
	      -e 's/\( '$at_range_end'\) .*$/\1/'`
	as_fn_append at_groups "$at_range "
	;;

    # Directory selection.
    --directory | -C )
	at_prev=--directory
	;;
    --directory=* )
	at_change_dir=:
	at_dir=$at_optarg
	if test x- = "x$at_dir" ; then
	  at_dir=./-
	fi
	;;

    # Parallel execution.
    --jobs | -j )
	at_jobs=0
	;;
    --jobs=* | -j[0-9]* )
	if test -n "$at_optarg"; then
	  at_jobs=$at_optarg
	else
	  at_jobs=`expr X$at_option : 'X-j\(.*\)'`
	fi
	case $at_jobs in *[!0-9]*)
	  at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'`
	  as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;;
	esac
	;;

    # Keywords.
    --keywords | -k )
	at_prev=--keywords
	;;
    --keywords=* )
	at_groups_selected=$at_help_all
	at_save_IFS=$IFS
	IFS=,
	set X $at_optarg
	shift
	IFS=$at_save_IFS
	for at_keyword
	do
	  at_invert=
	  case $at_keyword in
	  '!'*)
	    at_invert="-v"
	    at_keyword=`expr "X$at_keyword" : 'X!\(.*\)'`
	    ;;
	  esac
	  # It is on purpose that we match the test group titles too.
	  at_groups_selected=`$as_echo "$at_groups_selected" |
	      grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"`
	done
	# Smash the newlines.
	at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//' |
	  tr "$as_nl" ' '
	`
	as_fn_append at_groups "$at_groups_selected "
	;;
    --recheck)
	at_recheck=:
	;;

    *=*)
	at_envvar=`expr "x$at_option" : 'x\([^=]*\)='`
	# Reject names that are not valid shell variable names.
	case $at_envvar in
	  '' | [0-9]* | *[!_$as_cr_alnum]* )
	    as_fn_error $? "invalid variable name: \`$at_envvar'" ;;
	esac
	at_value=`$as_echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"`
	# Export now, but save eval for later and for debug scripts.
	export $at_envvar
	as_fn_append at_debug_args " $at_envvar='$at_value'"
	;;

     *) $as_echo "$as_me: invalid option: $at_option" >&2
	$as_echo "Try \`$0 --help' for more information." >&2
	exit 1
	;;
  esac
done

# Verify our last option didn't require an argument
if test -n "$at_prev"; then :
  as_fn_error $? "\`$at_prev' requires an argument"
fi

# The file containing the suite.
at_suite_log=$at_dir/$as_me.log

# Selected test groups.
if test -z "$at_groups$at_recheck"; then
  at_groups=$at_groups_all
else
  if test -n "$at_recheck" && test -r "$at_suite_log"; then
    at_oldfails=`sed -n '
      /^Failed tests:$/,/^Skipped tests:$/{
	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
      }
      /^Unexpected passes:$/,/^## Detailed failed tests/{
	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
      }
      /^## Detailed failed tests/q
      ' "$at_suite_log" | tr "$as_nl" ' '`
    as_fn_append at_groups "$at_oldfails"
  fi
  # Sort the tests, removing duplicates.
  at_groups=`$as_echo "$at_groups" | tr ' ' "$as_nl" | sort -nu`
fi

if test x"$at_color" = xalways \
   || { test x"$at_color" = xauto && test -t 1; }; then
  at_red=`printf '\033[0;31m'`
  at_grn=`printf '\033[0;32m'`
  at_lgn=`printf '\033[1;32m'`
  at_blu=`printf '\033[1;34m'`
  at_std=`printf '\033[m'`
else
  at_red= at_grn= at_lgn= at_blu= at_std=
fi

# Help message.
if $at_help_p; then
  cat <<_ATEOF || at_write_fail=1
Usage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS]

Run all the tests, or the selected TESTS, given by numeric ranges, and
save a detailed log file.  Upon failure, create debugging scripts.

Do not change environment variables directly.  Instead, set them via
command line arguments.  Set \`AUTOTEST_PATH' to select the executables
to exercise.  Each relative directory is expanded as build and source
directories relative to the top level of this distribution.
E.g., from within the build directory /tmp/foo-1.0, invoking this:

  $ $0 AUTOTEST_PATH=bin

is equivalent to the following, assuming the source directory is /src/foo-1.0:

  PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH $0
_ATEOF
cat <<_ATEOF || at_write_fail=1

Operation modes:
  -h, --help     print the help message, then exit
  -V, --version  print version number, then exit
  -c, --clean    remove all the files this test suite might create and exit
  -l, --list     describes all the tests, or the selected TESTS
_ATEOF
cat <<_ATEOF || at_write_fail=1

Execution tuning:
  -C, --directory=DIR
                 change to directory DIR before starting
      --color[=never|auto|always]
                 enable colored test results on terminal, or always
  -j, --jobs[=N]
                 Allow N jobs at once; infinite jobs with no arg (default 1)
  -k, --keywords=KEYWORDS
                 select the tests matching all the comma-separated KEYWORDS
                 multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD
      --recheck  select all tests that failed or passed unexpectedly last time
  -e, --errexit  abort as soon as a test fails; implies --debug
  -v, --verbose  force more detailed output
                 default for debugging scripts
  -d, --debug    inhibit clean up and top-level logging
                 default for debugging scripts
  -x, --trace    enable tests shell tracing
_ATEOF
cat <<_ATEOF || at_write_fail=1

Report bugs to <open-cobol-list@lists.sourceforge.net>.
_ATEOF
  exit $at_write_fail
fi

# List of tests.
if $at_list_p; then
  cat <<_ATEOF || at_write_fail=1
OpenCOBOL CE 1.1 test suite: Syntax Tests test groups:

 NUM: FILE-NAME:LINE     TEST-GROUP-NAME
      KEYWORDS

_ATEOF
  # Passing at_groups is tricky.  We cannot use it to form a literal string
  # or regexp because of the limitation of AIX awk.  And Solaris' awk
  # doesn't grok more than 99 fields in a record, so we have to use `split'.
  # at_groups needs to be space-separated for this script to work.
  case $at_groups in
    *"$as_nl"* )
      at_groups=`$as_echo "$at_groups" | tr "$as_nl" ' '` ;;
  esac
  $as_echo "$at_groups$as_nl$at_help_all" |
    awk 'BEGIN { FS = ";" }
	 NR == 1 {
	   for (n = split ($ 0, a, " "); n; n--)
	     selected[a[n]] = 1
	   next
	 }
	 NF > 0 {
	   if (selected[$ 1]) {
	     printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3
	     if ($ 4) {
	       lmax = 79
	       indent = "     "
	       line = indent
	       len = length (line)
	       n = split ($ 4, a, " ")
	       for (i = 1; i <= n; i++) {
		 l = length (a[i]) + 1
		 if (i > 1 && len + l > lmax) {
		   print line
		   line = indent " " a[i]
		   len = length (line)
		 } else {
		   line = line " " a[i]
		   len += l
		 }
	       }
	       if (n)
		 print line
	     }
	   }
	 }' || at_write_fail=1
  exit $at_write_fail
fi
if $at_version_p; then
  $as_echo "$as_me (OpenCOBOL CE 1.1)" &&
  cat <<\_ATEOF || at_write_fail=1

Copyright (C) 2010 Free Software Foundation, Inc.
This test suite is free software; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
_ATEOF
  exit $at_write_fail
fi

# Should we print banners?  at_groups is space-separated for entire test,
# newline-separated if only a subset of the testsuite is run.
case $at_groups in
  *' '*' '* | *"$as_nl"*"$as_nl"* )
      at_print_banners=: ;;
  * ) at_print_banners=false ;;
esac
# Text for banner N, set to empty once printed.

# Take any -C into account.
if $at_change_dir ; then
  test x != "x$at_dir" && cd "$at_dir" \
    || as_fn_error $? "unable to change directory"
  at_dir=`pwd`
fi

# Load the config files for any default variable assignments.
for at_file in atconfig atlocal
do
  test -r $at_file || continue
  . ./$at_file || as_fn_error $? "invalid content: $at_file"
done

# Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix:
: ${at_top_build_prefix=$at_top_builddir}

# Perform any assignments requested during argument parsing.
eval "$at_debug_args"

# atconfig delivers names relative to the directory the test suite is
# in, but the groups themselves are run in testsuite-dir/group-dir.
if test -n "$at_top_srcdir"; then
  builddir=../..
  for at_dir_var in srcdir top_srcdir top_build_prefix
  do
    eval at_val=\$at_$at_dir_var
    case $at_val in
      [\\/$]* | ?:[\\/]* ) at_prefix= ;;
      *) at_prefix=../../ ;;
    esac
    eval "$at_dir_var=\$at_prefix\$at_val"
  done
fi

## -------------------- ##
## Directory structure. ##
## -------------------- ##

# This is the set of directories and files used by this script
# (non-literals are capitalized):
#
# TESTSUITE         - the testsuite
# TESTSUITE.log     - summarizes the complete testsuite run
# TESTSUITE.dir/    - created during a run, remains after -d or failed test
# + at-groups/      - during a run: status of all groups in run
# | + NNN/          - during a run: meta-data about test group NNN
# | | + check-line  - location (source file and line) of current AT_CHECK
# | | + status      - exit status of current AT_CHECK
# | | + stdout      - stdout of current AT_CHECK
# | | + stder1      - stderr, including trace
# | | + stderr      - stderr, with trace filtered out
# | | + test-source - portion of testsuite that defines group
# | | + times       - timestamps for computing duration
# | | + pass        - created if group passed
# | | + xpass       - created if group xpassed
# | | + fail        - created if group failed
# | | + xfail       - created if group xfailed
# | | + skip        - created if group skipped
# + at-stop         - during a run: end the run if this file exists
# + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction
# + 0..NNN/         - created for each group NNN, remains after -d or failed test
# | + TESTSUITE.log - summarizes the group results
# | + ...           - files created during the group

# The directory the whole suite works in.
# Should be absolute to let the user `cd' at will.
at_suite_dir=$at_dir/$as_me.dir
# The file containing the suite ($at_dir might have changed since earlier).
at_suite_log=$at_dir/$as_me.log
# The directory containing helper files per test group.
at_helper_dir=$at_suite_dir/at-groups
# Stop file: if it exists, do not start new jobs.
at_stop_file=$at_suite_dir/at-stop
# The fifo used for the job dispatcher.
at_job_fifo=$at_suite_dir/at-job-fifo

if $at_clean; then
  test -d "$at_suite_dir" &&
    find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
  rm -f -r "$at_suite_dir" "$at_suite_log"
  exit $?
fi

# Don't take risks: use only absolute directories in PATH.
#
# For stand-alone test suites (ie. atconfig was not found),
# AUTOTEST_PATH is relative to `.'.
#
# For embedded test suites, AUTOTEST_PATH is relative to the top level
# of the package.  Then expand it into build/src parts, since users
# may create executables in both places.
AUTOTEST_PATH=`$as_echo "$AUTOTEST_PATH" | sed "s|:|$PATH_SEPARATOR|g"`
at_path=
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $AUTOTEST_PATH $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR
case $as_dir in
  [\\/]* | ?:[\\/]* )
    as_fn_append at_path "$as_dir"
    ;;
  * )
    if test -z "$at_top_build_prefix"; then
      # Stand-alone test suite.
      as_fn_append at_path "$as_dir"
    else
      # Embedded test suite.
      as_fn_append at_path "$at_top_build_prefix$as_dir$PATH_SEPARATOR"
      as_fn_append at_path "$at_top_srcdir/$as_dir"
    fi
    ;;
esac
  done
IFS=$as_save_IFS


# Now build and simplify PATH.
#
# There might be directories that don't exist, but don't redirect
# builtins' (eg., cd) stderr directly: Ultrix's sh hates that.
at_new_path=
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $at_path
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    test -d "$as_dir" || continue
case $as_dir in
  [\\/]* | ?:[\\/]* ) ;;
  * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;;
esac
case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in
  *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;;
  $PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;;
  *) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;;
esac
  done
IFS=$as_save_IFS

PATH=$at_new_path
export PATH

# Setting up the FDs.



# 5 is the log file.  Not to be overwritten if `-d'.
if $at_debug_p; then
  at_suite_log=/dev/null
else
  : >"$at_suite_log"
fi
exec 5>>"$at_suite_log"

# Banners and logs.
$as_echo "## ------------------------------------------ ##
## OpenCOBOL CE 1.1 test suite: Syntax Tests. ##
## ------------------------------------------ ##"
{
  $as_echo "## ------------------------------------------ ##
## OpenCOBOL CE 1.1 test suite: Syntax Tests. ##
## ------------------------------------------ ##"
  echo

  $as_echo "$as_me: command line was:"
  $as_echo "  \$ $0 $at_cli_args"
  echo

  # If ChangeLog exists, list a few lines in case it might help determining
  # the exact version.
  if test -n "$at_top_srcdir" && test -f "$at_top_srcdir/ChangeLog"; then
    $as_echo "## ---------- ##
## ChangeLog. ##
## ---------- ##"
    echo
    sed 's/^/| /;10q' "$at_top_srcdir/ChangeLog"
    echo
  fi

  {
cat <<_ASUNAME
## --------- ##
## Platform. ##
## --------- ##

hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
uname -m = `(uname -m) 2>/dev/null || echo unknown`
uname -r = `(uname -r) 2>/dev/null || echo unknown`
uname -s = `(uname -s) 2>/dev/null || echo unknown`
uname -v = `(uname -v) 2>/dev/null || echo unknown`

/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`

/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`

_ASUNAME

as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    $as_echo "PATH: $as_dir"
  done
IFS=$as_save_IFS

}
  echo

  # Contents of the config files.
  for at_file in atconfig atlocal
  do
    test -r $at_file || continue
    $as_echo "$as_me: $at_file:"
    sed 's/^/| /' $at_file
    echo
  done
} >&5


## ------------------------- ##
## Autotest shell functions. ##
## ------------------------- ##

# at_fn_banner NUMBER
# -------------------
# Output banner NUMBER, provided the testsuite is running multiple groups and
# this particular banner has not yet been printed.
at_fn_banner ()
{
  $at_print_banners || return 0
  eval at_banner_text=\$at_banner_text_$1
  test "x$at_banner_text" = x && return 0
  eval at_banner_text_$1=
  $as_echo "$as_nl$at_banner_text$as_nl"
} # at_fn_banner

# at_fn_check_prepare_notrace REASON LINE
# ---------------------------------------
# Perform AT_CHECK preparations for the command at LINE for an untraceable
# command; REASON is the reason for disabling tracing.
at_fn_check_prepare_notrace ()
{
  $at_trace_echo "Not enabling shell tracing (command contains $1)"
  $as_echo "$2" >"$at_check_line_file"
  at_check_trace=: at_check_filter=:
  : >"$at_stdout"; : >"$at_stderr"
}

# at_fn_check_prepare_trace LINE
# ------------------------------
# Perform AT_CHECK preparations for the command at LINE for a traceable
# command.
at_fn_check_prepare_trace ()
{
  $as_echo "$1" >"$at_check_line_file"
  at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace
  : >"$at_stdout"; : >"$at_stderr"
}

# at_fn_check_prepare_dynamic COMMAND LINE
# ----------------------------------------
# Decide if COMMAND at LINE is traceable at runtime, and call the appropriate
# preparation function.
at_fn_check_prepare_dynamic ()
{
  case $1 in
    *$as_nl*)
      at_fn_check_prepare_notrace 'an embedded newline' "$2" ;;
    *)
      at_fn_check_prepare_trace "$2" ;;
  esac
}

# at_fn_filter_trace
# ------------------
# Remove the lines in the file "$at_stderr" generated by "set -x" and print
# them to stderr.
at_fn_filter_trace ()
{
  mv "$at_stderr" "$at_stder1"
  grep '^ *+' "$at_stder1" >&2
  grep -v '^ *+' "$at_stder1" >"$at_stderr"
}

# at_fn_log_failure FILE-LIST
# ---------------------------
# Copy the files in the list on stdout with a "> " prefix, and exit the shell
# with a failure exit code.
at_fn_log_failure ()
{
  for file
    do $as_echo "$file:"; sed 's/^/> /' "$file"; done
  echo 1 > "$at_status_file"
  exit 1
}

# at_fn_check_skip EXIT-CODE LINE
# -------------------------------
# Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit
# the test group subshell with that same exit code. Use LINE in any report
# about test failure.
at_fn_check_skip ()
{
  case $1 in
    99) echo 99 > "$at_status_file"; at_failed=:
	$as_echo "$2: hard failure"; exit 99;;
    77) echo 77 > "$at_status_file"; exit 77;;
  esac
}

# at_fn_check_status EXPECTED EXIT-CODE LINE
# ------------------------------------------
# Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing.
# Otherwise, if it is 77 or 99, exit the test group subshell with that same
# exit code; if it is anything else print an error message referring to LINE,
# and fail the test.
at_fn_check_status ()
{
  case $2 in
    $1 ) ;;
    77) echo 77 > "$at_status_file"; exit 77;;
    99) echo 99 > "$at_status_file"; at_failed=:
	$as_echo "$3: hard failure"; exit 99;;
    *) $as_echo "$3: exit code was $2, expected $1"
      at_failed=:;;
  esac
}

# at_fn_diff_devnull FILE
# -----------------------
# Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless diff
# invocations.
at_fn_diff_devnull ()
{
  test -s "$1" || return 0
  $at_diff "$at_devnull" "$1"
}

# at_fn_test NUMBER
# -----------------
# Parse out test NUMBER from the tail of this file.
at_fn_test ()
{
  eval at_sed=\$at_sed$1
  sed "$at_sed" "$at_myself" > "$at_test_source"
}

# at_fn_create_debugging_script
# -----------------------------
# Create the debugging script $at_group_dir/run which will reproduce the
# current test group.
at_fn_create_debugging_script ()
{
  {
    echo "#! /bin/sh" &&
    echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' &&
    $as_echo "cd '$at_dir'" &&
    $as_echo "exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d $at_debug_args $at_group \${1+\"\$@\"}" &&
    echo 'exit 1'
  } >"$at_group_dir/run" &&
  chmod +x "$at_group_dir/run"
}

## -------------------------------- ##
## End of autotest shell functions. ##
## -------------------------------- ##
{
  $as_echo "## ---------------- ##
## Tested programs. ##
## ---------------- ##"
  echo
} >&5

# Report what programs are being tested.
for at_program in : $at_tested
do
  test "$at_program" = : && continue
  case $at_program in
    [\\/]* | ?:[\\/]* ) $at_program_=$at_program ;;
    * )
    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    test -f "$as_dir/$at_program" && break
  done
IFS=$as_save_IFS

    at_program_=$as_dir/$at_program ;;
  esac
  if test -f "$at_program_"; then
    {
      $as_echo "$at_srcdir/syntax.at:21: $at_program_ --version"
      "$at_program_" --version </dev/null
      echo
    } >&5 2>&1
  else
    as_fn_error $? "cannot find $at_program" "$LINENO" 5
  fi
done

{
  $as_echo "## ------------------ ##
## Running the tests. ##
## ------------------ ##"
} >&5

at_start_date=`date`
at_start_time=`date +%s 2>/dev/null`
$as_echo "$as_me: starting at: $at_start_date" >&5

# Create the master directory if it doesn't already exist.
as_dir="$at_suite_dir"; as_fn_mkdir_p ||
  as_fn_error $? "cannot create \`$at_suite_dir'" "$LINENO" 5

# Can we diff with `/dev/null'?  DU 5.0 refuses.
if diff /dev/null /dev/null >/dev/null 2>&1; then
  at_devnull=/dev/null
else
  at_devnull=$at_suite_dir/devnull
  >"$at_devnull"
fi

# Use `diff -u' when possible.
if at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff"
then
  at_diff='diff -u'
else
  at_diff=diff
fi

# Get the last needed group.
for at_group in : $at_groups; do :; done

# Extract the start and end lines of each test group at the tail
# of this file
awk '
BEGIN { FS="" }
/^#AT_START_/ {
  start = NR
}
/^#AT_STOP_/ {
  test = substr ($ 0, 10)
  print "at_sed" test "=\"1," start "d;" (NR-1) "q\""
  if (test == "'"$at_group"'") exit
}' "$at_myself" > "$at_suite_dir/at-source-lines" &&
. "$at_suite_dir/at-source-lines" ||
  as_fn_error $? "cannot create test line number cache" "$LINENO" 5
rm -f "$at_suite_dir/at-source-lines"

# Set number of jobs for `-j'; avoid more jobs than test groups.
set X $at_groups; shift; at_max_jobs=$#
if test $at_max_jobs -eq 0; then
  at_jobs=1
fi
if test $at_jobs -ne 1 &&
   { test $at_jobs -eq 0 || test $at_jobs -gt $at_max_jobs; }; then
  at_jobs=$at_max_jobs
fi

# If parallel mode, don't output banners, don't split summary lines.
if test $at_jobs -ne 1; then
  at_print_banners=false
  at_quiet=:
fi

# Set up helper dirs.
rm -rf "$at_helper_dir" &&
mkdir "$at_helper_dir" &&
cd "$at_helper_dir" &&
{ test -z "$at_groups" || mkdir $at_groups; } ||
as_fn_error $? "testsuite directory setup failed" "$LINENO" 5

# Functions for running a test group.  We leave the actual
# test group execution outside of a shell function in order
# to avoid hitting zsh 4.x exit status bugs.

# at_fn_group_prepare
# -------------------
# Prepare for running a test group.
at_fn_group_prepare ()
{
  # The directory for additional per-group helper files.
  at_job_dir=$at_helper_dir/$at_group
  # The file containing the location of the last AT_CHECK.
  at_check_line_file=$at_job_dir/check-line
  # The file containing the exit status of the last command.
  at_status_file=$at_job_dir/status
  # The files containing the output of the tested commands.
  at_stdout=$at_job_dir/stdout
  at_stder1=$at_job_dir/stder1
  at_stderr=$at_job_dir/stderr
  # The file containing the code for a test group.
  at_test_source=$at_job_dir/test-source
  # The file containing dates.
  at_times_file=$at_job_dir/times

  # Be sure to come back to the top test directory.
  cd "$at_suite_dir"

  # Clearly separate the test groups when verbose.
  $at_first || $at_verbose echo

  at_group_normalized=$at_group

  eval 'while :; do
    case $at_group_normalized in #(
    '"$at_format"'*) break;;
    esac
    at_group_normalized=0$at_group_normalized
  done'


  # Create a fresh directory for the next test group, and enter.
  # If one already exists, the user may have invoked ./run from
  # within that directory; we remove the contents, but not the
  # directory itself, so that we aren't pulling the rug out from
  # under the shell's notion of the current directory.
  at_group_dir=$at_suite_dir/$at_group_normalized
  at_group_log=$at_group_dir/$as_me.log
  if test -d "$at_group_dir"; then
  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx {} \;
  rm -fr "$at_group_dir"/* "$at_group_dir"/.[!.] "$at_group_dir"/.??*
fi ||
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5
$as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;}
  # Be tolerant if the above `rm' was not able to remove the directory.
  as_dir="$at_group_dir"; as_fn_mkdir_p

  echo 0 > "$at_status_file"

  # In verbose mode, append to the log file *and* show on
  # the standard output; in quiet mode only write to the log.
  if test -z "$at_verbose"; then
    at_tee_pipe='tee -a "$at_group_log"'
  else
    at_tee_pipe='cat >> "$at_group_log"'
  fi
}

# at_fn_group_banner ORDINAL LINE DESC PAD [BANNER]
# -------------------------------------------------
# Declare the test group ORDINAL, located at LINE with group description DESC,
# and residing under BANNER. Use PAD to align the status column.
at_fn_group_banner ()
{
  at_setup_line="$2"
  test -n "$5" && at_fn_banner $5
  at_desc="$3"
  case $1 in
    [0-9])      at_desc_line="  $1: ";;
    [0-9][0-9]) at_desc_line=" $1: " ;;
    *)          at_desc_line="$1: "  ;;
  esac
  as_fn_append at_desc_line "$3$4"
  $at_quiet $as_echo_n "$at_desc_line"
  echo "#                             -*- compilation -*-" >> "$at_group_log"
}

# at_fn_group_postprocess
# -----------------------
# Perform cleanup after running a test group.
at_fn_group_postprocess ()
{
  # Be sure to come back to the suite directory, in particular
  # since below we might `rm' the group directory we are in currently.
  cd "$at_suite_dir"

  if test ! -f "$at_check_line_file"; then
    sed "s/^ */$as_me: WARNING: /" <<_ATEOF
      A failure happened in a test group before any test could be
      run. This means that test suite is improperly designed.  Please
      report this failure to <open-cobol-list@lists.sourceforge.net>.
_ATEOF
    $as_echo "$at_setup_line" >"$at_check_line_file"
    at_status=99
  fi
  $at_verbose $as_echo_n "$at_group. $at_setup_line: "
  $as_echo_n "$at_group. $at_setup_line: " >> "$at_group_log"
  case $at_xfail:$at_status in
    yes:0)
	at_msg="UNEXPECTED PASS"
	at_res=xpass
	at_errexit=$at_errexit_p
	at_color=$at_red
	;;
    no:0)
	at_msg="ok"
	at_res=pass
	at_errexit=false
	at_color=$at_grn
	;;
    *:77)
	at_msg='skipped ('`cat "$at_check_line_file"`')'
	at_res=skip
	at_errexit=false
	at_color=$at_blu
	;;
    no:* | *:99)
	at_msg='FAILED ('`cat "$at_check_line_file"`')'
	at_res=fail
	at_errexit=$at_errexit_p
	at_color=$at_red
	;;
    yes:*)
	at_msg='expected failure ('`cat "$at_check_line_file"`')'
	at_res=xfail
	at_errexit=false
	at_color=$at_lgn
	;;
  esac
  echo "$at_res" > "$at_job_dir/$at_res"
  # In parallel mode, output the summary line only afterwards.
  if test $at_jobs -ne 1 && test -n "$at_verbose"; then
    $as_echo "$at_desc_line $at_color$at_msg$at_std"
  else
    # Make sure there is a separator even with long titles.
    $as_echo " $at_color$at_msg$at_std"
  fi
  at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg"
  case $at_status in
    0|77)
      # $at_times_file is only available if the group succeeded.
      # We're not including the group log, so the success message
      # is written in the global log separately.  But we also
      # write to the group log in case they're using -d.
      if test -f "$at_times_file"; then
	at_log_msg="$at_log_msg     ("`sed 1d "$at_times_file"`')'
	rm -f "$at_times_file"
      fi
      $as_echo "$at_log_msg" >> "$at_group_log"
      $as_echo "$at_log_msg" >&5

      # Cleanup the group directory, unless the user wants the files.
      if $at_debug_p; then
	at_fn_create_debugging_script
      else
	if test -d "$at_group_dir"; then
	  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
	  rm -fr "$at_group_dir"
	fi
	rm -f "$at_test_source"
      fi
      ;;
    *)
      # Upon failure, include the log into the testsuite's global
      # log.  The failure message is written in the group log.  It
      # is later included in the global log.
      $as_echo "$at_log_msg" >> "$at_group_log"

      # Upon failure, keep the group directory for autopsy, and create
      # the debugging script.  With -e, do not start any further tests.
      at_fn_create_debugging_script
      if $at_errexit; then
	echo stop > "$at_stop_file"
      fi
      ;;
  esac
}


## ------------ ##
## Driver loop. ##
## ------------ ##


if (set -m && set +m && set +b) >/dev/null 2>&1; then
  set +b
  at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=-
else
  at_job_control_on=: at_job_control_off=: at_job_group=
fi

for at_signal in 1 2 15; do
  trap 'set +x; set +e
	$at_job_control_off
	at_signal='"$at_signal"'
	echo stop > "$at_stop_file"
	trap "" $at_signal
	at_pgids=
	for at_pgid in `jobs -p 2>/dev/null`; do
	  at_pgids="$at_pgids $at_job_group$at_pgid"
	done
	test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null
	wait
	if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then
	  echo >&2
	fi
	at_signame=`kill -l $at_signal 2>&1 || echo $at_signal`
	set x $at_signame
	test 1 -gt 2 && at_signame=$at_signal
	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5
$as_echo "$as_me: WARNING: caught signal $at_signame, bailing out" >&2;}
	as_fn_arith 128 + $at_signal && exit_status=$as_val
	as_fn_exit $exit_status' $at_signal
done

rm -f "$at_stop_file"
at_first=:

if test $at_jobs -ne 1 &&
     rm -f "$at_job_fifo" &&
     test -n "$at_job_group" &&
     ( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null
then
  # FIFO job dispatcher.

  trap 'at_pids=
	for at_pid in `jobs -p`; do
	  at_pids="$at_pids $at_job_group$at_pid"
	done
	if test -n "$at_pids"; then
	  at_sig=TSTP
	  test "${TMOUT+set}" = set && at_sig=STOP
	  kill -$at_sig $at_pids 2>/dev/null
	fi
	kill -STOP $$
	test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP

  echo
  # Turn jobs into a list of numbers, starting from 1.
  at_joblist=`$as_echo " $at_groups_all " | \
    sed 's/\( '$at_jobs'\) .*/\1/'`

  set X $at_joblist
  shift
  for at_group in $at_groups; do
    $at_job_control_on 2>/dev/null
    (
      # Start one test group.
      $at_job_control_off
      if $at_first; then
	exec 7>"$at_job_fifo"
      else
	exec 6<&-
      fi
      trap 'set +x; set +e
	    trap "" PIPE
	    echo stop > "$at_stop_file"
	    echo >&7
	    as_fn_exit 141' PIPE
      at_fn_group_prepare
      if cd "$at_group_dir" &&
	 at_fn_test $at_group &&
	 . "$at_test_source"
      then :; else
	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
	at_failed=:
      fi
      at_fn_group_postprocess
      echo >&7
    ) &
    $at_job_control_off
    if $at_first; then
      at_first=false
      exec 6<"$at_job_fifo" 7>"$at_job_fifo"
    fi
    shift # Consume one token.
    if test $# -gt 0; then :; else
      read at_token <&6 || break
      set x $*
    fi
    test -f "$at_stop_file" && break
  done
  exec 7>&-
  # Read back the remaining ($at_jobs - 1) tokens.
  set X $at_joblist
  shift
  if test $# -gt 0; then
    shift
    for at_job
    do
      read at_token
    done <&6
  fi
  exec 6<&-
  wait
else
  # Run serially, avoid forks and other potential surprises.
  for at_group in $at_groups; do
    at_fn_group_prepare
    if cd "$at_group_dir" &&
       at_fn_test $at_group &&
       . "$at_test_source"; then :; else
      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
      at_failed=:
    fi
    at_fn_group_postprocess
    test -f "$at_stop_file" && break
    at_first=false
  done
fi

# Wrap up the test suite with summary statistics.
cd "$at_helper_dir"

# Use ?..???? when the list must remain sorted, the faster * otherwise.
at_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'`
at_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'`
at_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'`
at_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do
		 echo $f; done | sed '/?/d; s,/xpass,,'`
at_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do
		echo $f; done | sed '/?/d; s,/fail,,'`

set X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list
shift; at_group_count=$#
set X $at_xpass_list; shift; at_xpass_count=$#; at_xpass_list=$*
set X $at_xfail_list; shift; at_xfail_count=$#
set X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$*
set X $at_skip_list; shift; at_skip_count=$#

as_fn_arith $at_group_count - $at_skip_count && at_run_count=$as_val
as_fn_arith $at_xpass_count + $at_fail_count && at_unexpected_count=$as_val
as_fn_arith $at_xfail_count + $at_fail_count && at_total_fail_count=$as_val

# Back to the top directory.
cd "$at_dir"
rm -rf "$at_helper_dir"

# Compute the duration of the suite.
at_stop_date=`date`
at_stop_time=`date +%s 2>/dev/null`
$as_echo "$as_me: ending at: $at_stop_date" >&5
case $at_start_time,$at_stop_time in
  [0-9]*,[0-9]*)
    as_fn_arith $at_stop_time - $at_start_time && at_duration_s=$as_val
    as_fn_arith $at_duration_s / 60 && at_duration_m=$as_val
    as_fn_arith $at_duration_m / 60 && at_duration_h=$as_val
    as_fn_arith $at_duration_s % 60 && at_duration_s=$as_val
    as_fn_arith $at_duration_m % 60 && at_duration_m=$as_val
    at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s"
    $as_echo "$as_me: test suite duration: $at_duration" >&5
    ;;
esac

echo
$as_echo "## ------------- ##
## Test results. ##
## ------------- ##"
echo
{
  echo
  $as_echo "## ------------- ##
## Test results. ##
## ------------- ##"
  echo
} >&5

if test $at_run_count = 1; then
  at_result="1 test"
  at_were=was
else
  at_result="$at_run_count tests"
  at_were=were
fi
if $at_errexit_p && test $at_unexpected_count != 0; then
  if test $at_xpass_count = 1; then
    at_result="$at_result $at_were run, one passed"
  else
    at_result="$at_result $at_were run, one failed"
  fi
  at_result="$at_result unexpectedly and inhibited subsequent tests."
  at_color=$at_red
else
  # Don't you just love exponential explosion of the number of cases?
  at_color=$at_red
  case $at_xpass_count:$at_fail_count:$at_xfail_count in
    # So far, so good.
    0:0:0) at_result="$at_result $at_were successful." at_color=$at_grn ;;
    0:0:*) at_result="$at_result behaved as expected." at_color=$at_lgn ;;

    # Some unexpected failures
    0:*:0) at_result="$at_result $at_were run,
$at_fail_count failed unexpectedly." ;;

    # Some failures, both expected and unexpected
    0:*:1) at_result="$at_result $at_were run,
$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
    0:*:*) at_result="$at_result $at_were run,
$at_total_fail_count failed ($at_xfail_count expected failures)." ;;

    # No unexpected failures, but some xpasses
    *:0:*) at_result="$at_result $at_were run,
$at_xpass_count passed unexpectedly." ;;

    # No expected failures, but failures and xpasses
    *:1:0) at_result="$at_result $at_were run,
$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;;
    *:*:0) at_result="$at_result $at_were run,
$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;;

    # All of them.
    *:*:1) at_result="$at_result $at_were run,
$at_xpass_count passed unexpectedly,
$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
    *:*:*) at_result="$at_result $at_were run,
$at_xpass_count passed unexpectedly,
$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
  esac

  if test $at_skip_count = 0 && test $at_run_count -gt 1; then
    at_result="All $at_result"
  fi
fi

# Now put skips in the mix.
case $at_skip_count in
  0) ;;
  1) at_result="$at_result
1 test was skipped." ;;
  *) at_result="$at_result
$at_skip_count tests were skipped." ;;
esac

if test $at_unexpected_count = 0; then
  echo "$at_color$at_result$at_std"
  echo "$at_result" >&5
else
  echo "${at_color}ERROR: $at_result$at_std" >&2
  echo "ERROR: $at_result" >&5
  {
    echo
    $as_echo "## ------------------------ ##
## Summary of the failures. ##
## ------------------------ ##"

    # Summary of failed and skipped tests.
    if test $at_fail_count != 0; then
      echo "Failed tests:"
      $SHELL "$at_myself" $at_fail_list --list
      echo
    fi
    if test $at_skip_count != 0; then
      echo "Skipped tests:"
      $SHELL "$at_myself" $at_skip_list --list
      echo
    fi
    if test $at_xpass_count != 0; then
      echo "Unexpected passes:"
      $SHELL "$at_myself" $at_xpass_list --list
      echo
    fi
    if test $at_fail_count != 0; then
      $as_echo "## ---------------------- ##
## Detailed failed tests. ##
## ---------------------- ##"
      echo
      for at_group in $at_fail_list
      do
	at_group_normalized=$at_group

  eval 'while :; do
    case $at_group_normalized in #(
    '"$at_format"'*) break;;
    esac
    at_group_normalized=0$at_group_normalized
  done'

	cat "$at_suite_dir/$at_group_normalized/$as_me.log"
	echo
      done
      echo
    fi
    if test -n "$at_top_srcdir"; then
      sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
## ${at_top_build_prefix}config.log ##
_ASBOX
      sed 's/^/| /' ${at_top_build_prefix}config.log
      echo
    fi
  } >&5

  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
## $as_me.log was created. ##
_ASBOX

  echo
  if $at_debug_p; then
    at_msg='per-test log files'
  else
    at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'"
  fi
  $as_echo "Please send $at_msg and all information you think might help:

   To: <open-cobol-list@lists.sourceforge.net>
   Subject: [OpenCOBOL CE 1.1] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly}

You may investigate any problem if you feel able to do so, in which
case the test suite provides a good starting point.  Its output may
be found below \`${at_testdir+${at_testdir}/}$as_me.dir'.
"
  exit 1
fi

exit 0

## ------------- ##
## Actual tests. ##
## ------------- ##
#AT_START_1
at_fn_group_banner 1 'copy.at:22' \
  "COPY: file not found" "                           "
at_xfail=no
(
  $as_echo "1. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy.inc".
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/copy.at:35: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "copy.at:35"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:6: Error: copy.inc: No such file or directory
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/copy.at:35"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1
#AT_START_2
at_fn_group_banner 2 'copy.at:42' \
  "COPY: replacement order" "                        "
at_xfail=no
(
  $as_echo "2. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >copy.inc <<'_ATEOF'

       01 TEST-VAR PIC X(2) VALUE "OK".
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy.inc"
          REPLACING ==TEST-VAR== BY ==FIRST-MATCH==
                    ==TEST-VAR== BY ==SECOND-MATCH==.
       PROCEDURE        DIVISION.
           DISPLAY FIRST-MATCH NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/copy.at:63: \${COMPILE} -o prog prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "copy.at:63"
( $at_check_trace; ${COMPILE} -o prog prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/copy.at:63"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/copy.at:64: ./prog"
at_fn_check_prepare_trace "copy.at:64"
( $at_check_trace; ./prog
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/copy.at:64"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2
#AT_START_3
at_fn_group_banner 3 'copy.at:69' \
  "COPY: separators" "                               "
at_xfail=no
(
  $as_echo "3. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >copy.inc <<'_ATEOF'

       01 TEST-VAR PIC X(2) VALUE "OK".
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy.inc"
          REPLACING ==TEST-VAR==, BY ==FIRST-MATCH==,
                 ,  ==TEST-VAR==; BY ==SECOND-MATCH==;
                 ;  ==TEST-VAR== , BY ==THIRD-MATCH==
                    ==TEST-VAR== ; BY ==FOURTH-MATCH==.
       PROCEDURE        DIVISION.
           DISPLAY FIRST-MATCH NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/copy.at:92: \${COMPILE} -o prog prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "copy.at:92"
( $at_check_trace; ${COMPILE} -o prog prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/copy.at:92"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/copy.at:93: ./prog"
at_fn_check_prepare_trace "copy.at:93"
( $at_check_trace; ./prog
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/copy.at:93"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_3
#AT_START_4
at_fn_group_banner 4 'copy.at:98' \
  "COPY: partial replacement" "                      "
at_xfail=no
(
  $as_echo "4. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >copy.inc <<'_ATEOF'

       01 :TEST:-VAR PIC X(2) VALUE "OK".
       01 (TEST)-VAR PIC X(2) VALUE "OK".
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy.inc"
          REPLACING ==:TEST:== BY ==COLON==
	            ==(TEST)== BY ==PAREN==.
       PROCEDURE        DIVISION.
           DISPLAY COLON-VAR NO ADVANCING
           END-DISPLAY.
           DISPLAY PAREN-VAR NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/copy.at:122: \${COMPILE} -o prog prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "copy.at:122"
( $at_check_trace; ${COMPILE} -o prog prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/copy.at:122"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/copy.at:123: ./prog"
at_fn_check_prepare_trace "copy.at:123"
( $at_check_trace; ./prog
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OKOK" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/copy.at:123"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_4
#AT_START_5
at_fn_group_banner 5 'copy.at:128' \
  "COPY: recursive replacement" "                    "
at_xfail=no
(
  $as_echo "5. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >copy-2.inc <<'_ATEOF'

       01 TEST-VAR PIC X(2) VALUE "OK".
_ATEOF


cat >copy-1.inc <<'_ATEOF'

       COPY "copy-2.inc".
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy-1.inc"
           REPLACING ==TEST-VAR== BY ==COPY-VAR==.
       PROCEDURE        DIVISION.
           DISPLAY COPY-VAR NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/copy.at:152: \${COMPILE} -o prog prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "copy.at:152"
( $at_check_trace; ${COMPILE} -o prog prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/copy.at:152"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/copy.at:153: ./prog"
at_fn_check_prepare_trace "copy.at:153"
( $at_check_trace; ./prog
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/copy.at:153"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_5
#AT_START_6
at_fn_group_banner 6 'definition.at:25' \
  "Invalid PROGRAM-ID" "                             "
at_xfail=no
(
  $as_echo "6. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      short.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/definition.at:34: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:34"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:3: Error: PROGRAM-ID 'short' invalid
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/definition.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_6
#AT_START_7
at_fn_group_banner 7 'definition.at:40' \
  "Invalid PROGRAM-ID type clause (1)" "             "
at_xfail=no
(
  $as_echo "7. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog IS COMMON.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/definition.at:49: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:49"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:3: Error: COMMON may only be used in a nested program
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/definition.at:49"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_7
#AT_START_8
at_fn_group_banner 8 'definition.at:55' \
  "Invalid PROGRAM-ID type clause (2)" "             "
at_xfail=no
(
  $as_echo "8. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog IS INITIAL RECURSIVE.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/definition.at:64: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:64"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:3: Error: syntax error, unexpected RECURSIVE, expecting '.'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/definition.at:64"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_8
#AT_START_9
at_fn_group_banner 9 'definition.at:76' \
  "Undefined data name" "                            "
at_xfail=no
(
  $as_echo "9. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           DISPLAY X
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/definition.at:87: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:87"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:5: Error: 'X' undefined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/definition.at:87"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_9
#AT_START_10
at_fn_group_banner 10 'definition.at:93' \
  "Undefined group name" "                           "
at_xfail=no
(
  $as_echo "10. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       PROCEDURE        DIVISION.
           DISPLAY X IN G
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/definition.at:107: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:107"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:8: Error: 'X' in 'G' undefined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/definition.at:107"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_10
#AT_START_11
at_fn_group_banner 11 'definition.at:113' \
  "Undefined data name in group" "                   "
at_xfail=no
(
  $as_echo "11. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC X.
       01 Y             PIC X.
       PROCEDURE        DIVISION.
           DISPLAY Y IN G
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/definition.at:129: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:129"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:10: Error: 'Y' in 'G' undefined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/definition.at:129"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_11
#AT_START_12
at_fn_group_banner 12 'definition.at:135' \
  "Reference not a group name" "                     "
at_xfail=no
(
  $as_echo "12. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       PROCEDURE        DIVISION.
           DISPLAY X IN X
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/definition.at:149: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:149"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:8: Error: 'X' in 'X' undefined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/definition.at:149"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_12
#AT_START_13
at_fn_group_banner 13 'definition.at:158' \
  "Incomplete 01 definition" "                       "
at_xfail=no
(
  $as_echo "13. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X.
_ATEOF


{ set +x
$as_echo "$at_srcdir/definition.at:168: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:168"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:6: Error: PICTURE clause required for 'X'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/definition.at:168"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_13
#AT_START_14
at_fn_group_banner 14 'definition.at:177' \
  "Same labels in different sections" "              "
at_xfail=no
(
  $as_echo "14. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
       S-1 SECTION.
       L.

       S-2 SECTION.
       L.

       S-3 SECTION.
            GO TO L.
       L.
_ATEOF


{ set +x
$as_echo "$at_srcdir/definition.at:194: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:194"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/definition.at:194"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_14
#AT_START_15
at_fn_group_banner 15 'definition.at:201' \
  "Redefinition of 01 items" "                       "
at_xfail=no
(
  $as_echo "15. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       01 X             PIC X.
_ATEOF


{ set +x
$as_echo "$at_srcdir/definition.at:212: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:212"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:7: Warning: Redefinition of 'X'
prog.cob:6: Warning: 'X' previously defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/definition.at:212"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_15
#AT_START_16
at_fn_group_banner 16 'definition.at:219' \
  "Redefinition of 01 and 02 items" "                "
at_xfail=no
(
  $as_echo "16. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X.
         02 X           PIC X.
_ATEOF


{ set +x
$as_echo "$at_srcdir/definition.at:230: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:230"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:7: Warning: Redefinition of 'X'
prog.cob:6: Warning: 'X' previously defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/definition.at:230"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_16
#AT_START_17
at_fn_group_banner 17 'definition.at:237' \
  "Redefinition of 02 items" "                       "
at_xfail=no
(
  $as_echo "17. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC X.
         02 X           PIC X.
_ATEOF


{ set +x
$as_echo "$at_srcdir/definition.at:249: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:249"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:8: Warning: Redefinition of 'X'
prog.cob:7: Warning: 'X' previously defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/definition.at:249"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_17
#AT_START_18
at_fn_group_banner 18 'definition.at:256' \
  "Redefinition of 77 items" "                       "
at_xfail=no
(
  $as_echo "18. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77 X             PIC X.
       77 X             PIC X.
_ATEOF


{ set +x
$as_echo "$at_srcdir/definition.at:267: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:267"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:7: Warning: Redefinition of 'X'
prog.cob:6: Warning: 'X' previously defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/definition.at:267"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_18
#AT_START_19
at_fn_group_banner 19 'definition.at:274' \
  "Redefinition of 01 and 77 items" "                "
at_xfail=no
(
  $as_echo "19. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       77 X             PIC X.
_ATEOF


{ set +x
$as_echo "$at_srcdir/definition.at:285: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:285"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:7: Warning: Redefinition of 'X'
prog.cob:6: Warning: 'X' previously defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/definition.at:285"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_19
#AT_START_20
at_fn_group_banner 20 'definition.at:292' \
  "Redefinition of 88 items" "                       "
at_xfail=no
(
  $as_echo "20. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
         88 A           VALUE "A".
         88 A           VALUE "B".
_ATEOF


{ set +x
$as_echo "$at_srcdir/definition.at:304: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:304"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:8: Warning: Redefinition of 'A'
prog.cob:7: Warning: 'A' previously defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/definition.at:304"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_20
#AT_START_21
at_fn_group_banner 21 'definition.at:311' \
  "Ambiguous reference to 02 items" "                "
at_xfail=no
(
  $as_echo "21. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 X           PIC X.
       01 G2.
         02 X           PIC X.
       PROCEDURE        DIVISION.
           DISPLAY X
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/definition.at:328: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:328"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:11: Error: 'X' ambiguous; need qualification
prog.cob:7: Error: 'X' in 'G1' defined here
prog.cob:9: Error: 'X' in 'G2' defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/definition.at:328"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_21
#AT_START_22
at_fn_group_banner 22 'definition.at:336' \
  "Ambiguous reference to 02 and 03 items" "         "
at_xfail=no
(
  $as_echo "22. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X.
           03 X         PIC X.
       PROCEDURE        DIVISION.
           DISPLAY X
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/definition.at:352: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:352"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:10: Error: 'X' ambiguous; need qualification
prog.cob:7: Error: 'X' in 'G' defined here
prog.cob:8: Error: 'X' in 'X' in 'G' defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/definition.at:352"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_22
#AT_START_23
at_fn_group_banner 23 'definition.at:360' \
  "Ambiguous reference with qualification" "         "
at_xfail=no
(
  $as_echo "23. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 X.
           03 Y         PIC X.
       01 G2.
         02 X.
           03 Y         PIC X.
       PROCEDURE        DIVISION.
           DISPLAY Y OF X
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/definition.at:379: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:379"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:13: Error: 'Y' in 'X' ambiguous; need qualification
prog.cob:8: Error: 'Y' in 'X' in 'G1' defined here
prog.cob:11: Error: 'Y' in 'X' in 'G2' defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/definition.at:379"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_23
#AT_START_24
at_fn_group_banner 24 'definition.at:389' \
  "Unique reference with ambiguous qualifiers" "     "
at_xfail=no
(
  $as_echo "24. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 X.
           03 Y         PIC X VALUE "Y".
       01 G2.
         02 X.
           03 Z         PIC X VALUE "Z".
       PROCEDURE        DIVISION.
           DISPLAY Z OF X NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/definition.at:408: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:408"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/definition.at:408"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_24
#AT_START_25
at_fn_group_banner 25 'definition.at:424' \
  "Undefined procedure name" "                       "
at_xfail=no
(
  $as_echo "25. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           GO TO END-OF-PROGRAM.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/definition.at:434: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:434"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:5: Error: 'END-OF-PROGRAM' undefined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/definition.at:434"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_25
#AT_START_26
at_fn_group_banner 26 'definition.at:443' \
  "Redefinition of section names" "                  "
at_xfail=no
(
  $as_echo "26. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
       L SECTION.
       L SECTION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/definition.at:454: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:454"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob: In section 'L':
prog.cob:6: Error: Redefinition of 'L'
prog.cob:5: Error: 'L' previously defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/definition.at:454"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_26
#AT_START_27
at_fn_group_banner 27 'definition.at:462' \
  "Redefinition of section and paragraph names" "    "
at_xfail=no
(
  $as_echo "27. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
       L SECTION.
       L.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/definition.at:473: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:473"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob: In section 'L':
prog.cob:6: Error: Redefinition of 'L'
prog.cob:5: Error: 'L' previously defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/definition.at:473"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_27
#AT_START_28
at_fn_group_banner 28 'definition.at:481' \
  "Redefinition of paragraph names" "                "
at_xfail=no
(
  $as_echo "28. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
       L.
       L.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/definition.at:492: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:492"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/definition.at:492"
$at_failed && at_fn_log_failure
$at_traceon; }


## Change when we DON'T allow this
## AT_CHECK([${COMPILE_ONLY} prog.cob], [1], ,
## [prog.cob: In paragraph 'L':
## prog.cob:6: Error: redefinition of 'L'
## prog.cob:5: Error: 'L' previously defined here
## ])

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_28
#AT_START_29
at_fn_group_banner 29 'definition.at:504' \
  "Ambiguous reference to paragraph name" "          "
at_xfail=no
(
  $as_echo "29. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
       S-1 SECTION.
       L.
       S-2 SECTION.
       L.
       S-3 SECTION.
           GO TO L.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/definition.at:519: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:519"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob: In section 'S-3':
prog.cob:10: Error: 'L' ambiguous; need qualification
prog.cob:6: Error: 'L' in 'S-1' defined here
prog.cob:8: Error: 'L' in 'S-2' defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/definition.at:519"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_29
#AT_START_30
at_fn_group_banner 30 'definition.at:528' \
  "Non-matching level numbers (extension)" "         "
at_xfail=no
(
  $as_echo "30. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >test.conf <<'_ATEOF'

include "default.conf"
relax-level-hierarchy: yes
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  A.
            05 B.
                10 C PIC X.
           04 D.
            05 E PIC X.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/definition.at:549: \${COMPILE_ONLY} -conf=test.conf prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:549"
( $at_check_trace; ${COMPILE_ONLY} -conf=test.conf prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:9: Warning: No previous data item of level 04
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/definition.at:549"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_30
#AT_START_31
at_fn_group_banner 31 'expression.at:21' \
  "Ambiguous AND/OR" "                               "
at_xfail=no
(
  $as_echo "31. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           IF 3 = 1 AND 2 OR 3
               DISPLAY "OK"
               END-DISPLAY
           END-IF.
           IF 3 = 1 OR 2 AND 3
               DISPLAY "NO"
               END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/expression.at:38: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "expression.at:38"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:6: Warning: Suggest parentheses around AND within OR
prog.cob:10: Warning: Suggest parentheses around AND within OR
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/expression.at:38"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_31
#AT_START_32
at_fn_group_banner 32 'expression.at:45' \
  "START on SEQUENTIAL file" "                       "
at_xfail=no
(
  $as_echo "32. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN       "./TEST-FILE"
                        ORGANIZATION IS LINE SEQUENTIAL.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X(4).
       PROCEDURE        DIVISION.
           OPEN  INPUT TEST-FILE.
           START TEST-FILE KEY EQUAL TEST-REC
           END-START.
           CLOSE TEST-FILE.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/expression.at:67: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "expression.at:67"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:16: Error: START not allowed on SEQUENTIAL files
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/expression.at:67"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_32
#AT_START_33
at_fn_group_banner 33 'subscripts.at:31' \
  "Subscripted item requires OCCURS clause" "        "
at_xfail=no
(
  $as_echo "33. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC X.
       PROCEDURE        DIVISION.
           DISPLAY G(1)
           END-DISPLAY.
           DISPLAY X(1)
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/subscripts.at:48: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "subscripts.at:48"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:9: Error: 'G' cannot be subscripted
prog.cob:11: Error: 'X' cannot be subscripted
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/subscripts.at:48"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_33
#AT_START_34
at_fn_group_banner 34 'subscripts.at:58' \
  "The number of subscripts" "                       "
at_xfail=no
(
  $as_echo "34. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 X           OCCURS 2.
           03 Y         PIC X OCCURS 3.
       PROCEDURE        DIVISION.
           DISPLAY X
           END-DISPLAY.
           DISPLAY X(1)
           END-DISPLAY.
           DISPLAY X(1, 2)
           END-DISPLAY.
           DISPLAY Y(1)
           END-DISPLAY.
           DISPLAY Y(1, 2)
           END-DISPLAY.
           DISPLAY Y(1, 2, 3)
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/subscripts.at:84: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "subscripts.at:84"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:10: Error: 'X' requires 1 subscript
prog.cob:14: Error: 'X' requires 1 subscript
prog.cob:16: Error: 'Y' requires 2 subscripts
prog.cob:20: Error: 'Y' requires 2 subscripts
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/subscripts.at:84"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_34
#AT_START_35
at_fn_group_banner 35 'occurs.at:28' \
  "OCCURS with level 01, 66, 77, and 88" "           "
at_xfail=no
(
  $as_echo "35. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-01          PIC X OCCURS 10.
       01 G             OCCURS 10.
         02 X-02        PIC X OCCURS 10.
         66 X-66        RENAMES X-02 OCCURS 10.
       77 X-77          PIC X OCCURS 10.
       88 X-88          VALUE "X" OCCURS 10.
_ATEOF


{ set +x
$as_echo "$at_srcdir/occurs.at:43: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "occurs.at:43"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:11: Error: Level 88 item 'X-88' cannot have other than VALUE clause
prog.cob:6: Error: Level 01 item 'X-01' cannot have OCCURS clause
prog.cob:7: Error: Level 01 item 'G' cannot have OCCURS clause
prog.cob:9: Error: Level 66 item 'X-66' cannot have other than RENAMES clause
prog.cob:10: Error: Level 77 item 'X-77' cannot have OCCURS clause
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/occurs.at:43"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_35
#AT_START_36
at_fn_group_banner 36 'occurs.at:53' \
  "OCCURS with variable-occurrence data item" "      "
at_xfail=no
(
  $as_echo "36. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G-1.
         02 G-2         OCCURS 10.
           03 X         PIC X(10) OCCURS 1 TO 4 DEPENDING ON I.
       77 I             PIC 9.
_ATEOF


{ set +x
$as_echo "$at_srcdir/occurs.at:66: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "occurs.at:66"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:7: Error: 'G-2' cannot have the OCCURS clause due to 'X'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/occurs.at:66"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_36
#AT_START_37
at_fn_group_banner 37 'occurs.at:90' \
  "Nested OCCURS clause" "                           "
at_xfail=no
(
  $as_echo "37. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G-1.
        02 G-2          OCCURS 2.
         03 G-3         OCCURS 2.
          04 G-4        OCCURS 2.
           05 G-5       OCCURS 2.
            06 G-6      OCCURS 2.
             07 G-7     OCCURS 2.
              08 G-8    OCCURS 2.
               09 X     PIC X.
_ATEOF


{ set +x
$as_echo "$at_srcdir/occurs.at:108: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "occurs.at:108"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/occurs.at:108"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_37
#AT_START_38
at_fn_group_banner 38 'occurs.at:136' \
  "OCCURS DEPENDING followed by another field" "     "
at_xfail=no
(
  $as_echo "38. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G-1.
         02 X           PIC X OCCURS 1 TO 3 DEPENDING ON I.
         02 Y           PIC X.
       01 G-2.
         02 G-3         OCCURS 1 TO 3 DEPENDING ON I.
           03 X         PIC X.
         02 Y           PIC X.
       01 G-4.
         02 G-5.
           03 X         PIC X OCCURS 1 TO 3 DEPENDING ON I.
         02 Y           PIC X.
       01 I             PIC 9.
_ATEOF


{ set +x
$as_echo "$at_srcdir/occurs.at:157: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "occurs.at:157"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:7: Error: 'X' cannot have OCCURS DEPENDING
prog.cob:10: Error: 'G-3' cannot have OCCURS DEPENDING
prog.cob:15: Error: 'X' cannot have OCCURS DEPENDING
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/occurs.at:157"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_38
#AT_START_39
at_fn_group_banner 39 'occurs.at:174' \
  "OCCURS DEPENDING without TO clause" "             "
at_xfail=no
(
  $as_echo "39. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 Y             PIC 9.
       01 XX.
          03 X  PIC X OCCURS 10 DEPENDING ON Y.
_ATEOF


{ set +x
$as_echo "$at_srcdir/occurs.at:186: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "occurs.at:186"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:8: Error: ODO without TO clause does not conform to COBOL 2002
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/occurs.at:186"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_39
#AT_START_40
at_fn_group_banner 40 'redefines.at:28' \
  "REDEFINES: not following entry-name" "            "
at_xfail=no
(
  $as_echo "40. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       01 Y             PIC 9 REDEFINES X.
_ATEOF


{ set +x
$as_echo "$at_srcdir/redefines.at:40: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:40"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:7: Error: REDEFINES clause must follow entry-name
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:40"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_40
#AT_START_41
at_fn_group_banner 41 'redefines.at:49' \
  "REDEFINES: level 02 by 01" "                      "
at_xfail=no
(
  $as_echo "41. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC X.
       01 Y             REDEFINES X PIC 9.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/redefines.at:64: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:64"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:8: Error: Level number of REDEFINES entries must be identical
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:64"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_41
#AT_START_42
at_fn_group_banner 42 'redefines.at:70' \
  "REDEFINES: level 03 by 02" "                      "
at_xfail=no
(
  $as_echo "42. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 G2.
           03 X         PIC X.
         02 Y           REDEFINES X PIC 9.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/redefines.at:86: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:86"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:9: Error: 'X' undefined in 'G1'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:86"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_42
#AT_START_43
at_fn_group_banner 43 'redefines.at:92' \
  "REDEFINES: level 66" "                            "
at_xfail=no
(
  $as_echo "43. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC X.
         66 A           RENAMES X.
         66 B           REDEFINES A PIC 9.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/redefines.at:108: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:108"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:9: Error: Level number of REDEFINES entry cannot be 66 or 88
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:108"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_43
#AT_START_44
at_fn_group_banner 44 'redefines.at:114' \
  "REDEFINES: level 88" "                            "
at_xfail=no
(
  $as_echo "44. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
         88 A           VALUE "A".
         88 B           REDEFINES A VALUE "B".
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/redefines.at:129: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:129"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:8: Error: Level number of REDEFINES entry cannot be 66 or 88
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:129"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_44
#AT_START_45
at_fn_group_banner 45 'redefines.at:143' \
  "REDEFINES: lower level number" "                  "
at_xfail=no
(
  $as_echo "45. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 G2.
           03 X         PIC X.
         02 G3.
           03 A         REDEFINES X PIC 9.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/redefines.at:160: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:160"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:10: Error: 'X' undefined in 'G3'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:160"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_45
#AT_START_46
at_fn_group_banner 46 'redefines.at:169' \
  "REDEFINES: with OCCURS" "                         "
at_xfail=no
(
  $as_echo "46. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC X OCCURS 2.
         02 Y           REDEFINES X PIC XX.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/redefines.at:184: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:184"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:8: Warning: The original definition 'X' should not have OCCURS
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/redefines.at:184"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_46
#AT_START_47
at_fn_group_banner 47 'redefines.at:190' \
  "REDEFINES: with subscript" "                      "
at_xfail=no
(
  $as_echo "47. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 G2          OCCURS 2.
           03 X         PIC X.
           03 Y         REDEFINES X(1) PIC X.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/redefines.at:206: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:206"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:9: Error: 'X' cannot be subscripted here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:206"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_47
#AT_START_48
at_fn_group_banner 48 'redefines.at:212' \
  "REDEFINES: with variable occurrence" "            "
at_xfail=no
(
  $as_echo "48. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 X           PIC XX.
         02 Y           REDEFINES X PIC X OCCURS 1 TO 2 DEPENDING ON I.
       01 G2.
         02 X           PIC XX.
         02 Y           REDEFINES X.
           03 A         PIC X OCCURS 1 TO 2 DEPENDING ON I.
       01 G3.
         02 X.
           03 A         PIC X OCCURS 1 TO 2 DEPENDING ON I.
         02 Y           REDEFINES X PIC X.
       01 I             PIC 9.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/redefines.at:236: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:236"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:8: Error: 'Y' cannot be variable length
prog.cob:11: Error: 'Y' cannot be variable length
prog.cob:16: Error: The original definition 'X' cannot be variable length
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:236"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_48
#AT_START_49
at_fn_group_banner 49 'redefines.at:247' \
  "REDEFINES: with qualification" "                  "
at_xfail=no
(
  $as_echo "49. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 X           PIC X.
       01 G2.
         02 X           PIC X.
         02 A           REDEFINES X IN G1.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/redefines.at:264: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:264"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:10: Error: 'X' cannot be qualified here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:264"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_49
#AT_START_50
at_fn_group_banner 50 'redefines.at:273' \
  "REDEFINES: multiple redefinition" "               "
at_xfail=no
(
  $as_echo "50. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 X           PIC X.
         02 A           REDEFINES X PIC 9.
         02 B           REDEFINES X PIC 9.
         02 C           REDEFINES B PIC 9.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/redefines.at:290: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:290"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:10: Error: 'B' not the original definition
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:290"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/redefines.at:294: \${COMPILE_ONLY} -std=mvs prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:294"
( $at_check_trace; ${COMPILE_ONLY} -std=mvs prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/redefines.at:294"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_50
#AT_START_51
at_fn_group_banner 51 'redefines.at:301' \
  "REDEFINES: size exceeds" "                        "
at_xfail=no
(
  $as_echo "51. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 X           PIC X.
         02 A           REDEFINES X PIC 99.
       01 G2.
         02 X           PIC X.
         02 A           REDEFINES X PIC 9 OCCURS 2.
       01 WRK-X         PIC X.
       01 WRK-X-REDEF   REDEFINES WRK-X PIC 99.
       01 EXT-X         PIC X EXTERNAL.
       01 EXT-X-REDEF   REDEFINES EXT-X PIC 99.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/redefines.at:323: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:323"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:8: Error: Size of 'A' larger than size of 'X'
prog.cob:11: Error: Size of 'A' larger than size of 'X'
prog.cob:15: Error: Size of 'EXT-X-REDEF' larger than size of 'EXT-X'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:323"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_51
#AT_START_52
at_fn_group_banner 52 'redefines.at:334' \
  "REDEFINES: with VALUE" "                          "
at_xfail=no
(
  $as_echo "52. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       01 A             REDEFINES X PIC X VALUE "A".
       01 G             REDEFINES X.
         02 B           PIC X VALUE "A".
       01 Y             REDEFINES X PIC X.
         88 C           VALUE "A".
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/redefines.at:352: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:352"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:7: Error: Entries under REDEFINES cannot have VALUE clause
prog.cob:9: Error: Entries under REDEFINES cannot have VALUE clause
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:352"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_52
#AT_START_53
at_fn_group_banner 53 'redefines.at:362' \
  "REDEFINES: with intervention" "                   "
at_xfail=no
(
  $as_echo "53. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       01 Y             PIC X.
       01 A             REDEFINES X PIC X.
       01 G.
         02 G-X         PIC X.
         02 G-Y         PIC X.
         02 G-A         REDEFINES G-X PIC X.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/redefines.at:381: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:381"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:8: Error: REDEFINES must follow the original definition
prog.cob:12: Error: REDEFINES must follow the original definition
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:381"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_53
#AT_START_54
at_fn_group_banner 54 'redefines.at:391' \
  "REDEFINES: within REDEFINES" "                    "
at_xfail=no
(
  $as_echo "54. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       01 G             REDEFINES X.
         02 A           PIC X.
         02 B           REDEFINES A PIC 9.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/redefines.at:407: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:407"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/redefines.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_54
#AT_START_55
at_fn_group_banner 55 'value.at:43' \
  "Numeric item (integer)" "                         "
at_xfail=no
(
  $as_echo "55. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-SPACE       PIC 999 VALUE SPACE.
       01 X-ABC         PIC 999 VALUE "abc".
       01 X-12-3        PIC 999 VALUE 12.3.
       01 X-123         PIC 999 VALUE 123.
       01 X-1234        PIC 999 VALUE 1234.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/value.at:59: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "value.at:59"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:6: Error: Invalid VALUE clause
prog.cob:7: Warning: Numeric value is expected
prog.cob:8: Warning: Value size exceeds data size
prog.cob:10: Warning: Value size exceeds data size
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/value.at:59"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_55
#AT_START_56
at_fn_group_banner 56 'value.at:68' \
  "Numeric item (non-integer)" "                     "
at_xfail=no
(
  $as_echo "56. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-12          PIC 99V9 VALUE 12.
       01 X-123         PIC 99V9 VALUE 123.
       01 X-12-3        PIC 99V9 VALUE 12.3.
       01 X-12-34       PIC 99V9 VALUE 12.34.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/value.at:83: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "value.at:83"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:7: Warning: Value size exceeds data size
prog.cob:9: Warning: Value size exceeds data size
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/value.at:83"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_56
#AT_START_57
at_fn_group_banner 57 'value.at:90' \
  "Numeric item with picture P" "                    "
at_xfail=no
(
  $as_echo "57. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-99PP-0      PIC 99PP VALUE 0.
       01 X-99PP-1200   PIC 99PP VALUE 1200.
       01 X-99PP-1230   PIC 99PP VALUE 1230.
       01 X-99PP-10000  PIC 99PP VALUE 10000.
       01 X-PP99--0     PIC PP99 VALUE .0.
       01 X-PP99--0012  PIC PP99 VALUE .0012.
       01 X-PP99--0123  PIC PP99 VALUE .0123.
       01 X-PP99--00001 PIC PP99 VALUE .00001.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/value.at:109: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "value.at:109"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:8: Warning: Value does not fit the picture string
prog.cob:9: Warning: Value size exceeds data size
prog.cob:12: Warning: Value does not fit the picture string
prog.cob:13: Warning: Value size exceeds data size
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/value.at:109"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_57
#AT_START_58
at_fn_group_banner 58 'value.at:121' \
  "Signed numeric literal" "                         "
at_xfail=no
(
  $as_echo "58. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-9P          PIC 9  VALUE +1.
       01 X-9N          PIC 9  VALUE -1.
       01 X-S9P         PIC S9 VALUE +1.
       01 X-S9N         PIC S9 VALUE -1.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/value.at:136: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "value.at:136"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:6: Error: Data item not signed
prog.cob:7: Error: Data item not signed
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/value.at:136"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_58
#AT_START_59
at_fn_group_banner 59 'value.at:146' \
  "Alphabetic item" "                                "
at_xfail=no
(
  $as_echo "59. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-123         PIC AAA VALUE 123.
       01 X-ZERO        PIC AAA VALUE ZERO.
       01 X-AB1         PIC AAA VALUE "ab1".
       01 X-ABC         PIC AAA VALUE "abc".
       01 X-ABCD        PIC AAA VALUE "abcd".
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/value.at:162: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "value.at:162"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:6: Warning: Alphanumeric value is expected
prog.cob:7: Error: Invalid VALUE clause
prog.cob:8: Warning: Value does not fit the picture string
prog.cob:10: Warning: Value size exceeds data size
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/value.at:162"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_59
#AT_START_60
at_fn_group_banner 60 'value.at:171' \
  "Alphanumeric item" "                              "
at_xfail=no
(
  $as_echo "60. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-123         PIC XXX VALUE 123.
       01 X-ABC         PIC XXX VALUE "abc".
       01 X-ABCD        PIC XXX VALUE "abcd".
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/value.at:185: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "value.at:185"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:6: Warning: Alphanumeric value is expected
prog.cob:8: Warning: Value size exceeds data size
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/value.at:185"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_60
#AT_START_61
at_fn_group_banner 61 'value.at:192' \
  "Alphanumeric group item" "                        "
at_xfail=no
(
  $as_echo "61. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G-1           VALUE 123.
         02 X           PIC XXX.
       01 G-2           VALUE "abc".
         02 X           PIC XXX.
       01 G-3           VALUE "abcd".
         02 X           PIC XXX.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/value.at:209: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "value.at:209"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:6: Warning: Alphanumeric value is expected
prog.cob:10: Warning: Value size exceeds data size
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/value.at:209"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_61
#AT_START_62
at_fn_group_banner 62 'value.at:226' \
  "Numeric-edited item" "                            "
at_xfail=no
(
  $as_echo "62. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-SPACE       PIC **99.00 VALUE SPACE.
       01 X-123         PIC **99.00 VALUE 123.
       01 X-ABC         PIC **99.00 VALUE "abc".
       01 X-MATCH       PIC **99.00 VALUE "*123.00".
       01 X-OVERFLOW    PIC **99.00 VALUE "*123.000".
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/value.at:242: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "value.at:242"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:7: Warning: Alphanumeric value is expected
prog.cob:10: Warning: Value size exceeds data size
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/value.at:242"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_62
#AT_START_63
at_fn_group_banner 63 'value.at:249' \
  "Alphanumeric-edited item" "                       "
at_xfail=no
(
  $as_echo "63. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-123         PIC BXX VALUE 123.
       01 X-ABC         PIC BXX VALUE "abc".
       01 X-MATCH       PIC BXX VALUE " ab".
       01 X-OVERFLOW    PIC BXX VALUE " abc".
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/value.at:264: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "value.at:264"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:6: Warning: Alphanumeric value is expected
prog.cob:9: Warning: Value size exceeds data size
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/value.at:264"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_63
#AT_START_64
at_fn_group_banner 64 'move.at:37' \
  "MOVE SPACE TO numeric or numeric-edited item" "   "
at_xfail=no
(
  $as_echo "64. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC 9.
       01 Y             PIC 09.
       PROCEDURE        DIVISION.
           MOVE SPACE TO X.
           MOVE SPACE TO Y.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/move.at:52: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "move.at:52"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:9: Error: Invalid MOVE statement
prog.cob:10: Error: Invalid MOVE statement
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/move.at:52"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_64
#AT_START_65
at_fn_group_banner 65 'move.at:62' \
  "MOVE ZERO TO alphabetic item" "                   "
at_xfail=no
(
  $as_echo "65. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 A             PIC A.
       PROCEDURE        DIVISION.
           MOVE ZERO TO A.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/move.at:75: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "move.at:75"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:8: Error: Invalid MOVE statement
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/move.at:75"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_65
#AT_START_66
at_fn_group_banner 66 'move.at:87' \
  "MOVE alphabetic TO x" "                           "
at_xfail=no
(
  $as_echo "66. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC A.
       01 Y-A           PIC A.
       01 Y-X           PIC X.
       01 Y-BX          PIC BX.
       01 Y-9           PIC 9.
       01 Y-09          PIC 09.
       PROCEDURE        DIVISION.
           MOVE X TO Y-A.
           MOVE X TO Y-X.
           MOVE X TO Y-BX.
           MOVE X TO Y-9.
           MOVE X TO Y-09.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/move.at:109: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "move.at:109"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:16: Error: Invalid MOVE statement
prog.cob:17: Error: Invalid MOVE statement
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/move.at:109"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_66
#AT_START_67
at_fn_group_banner 67 'move.at:116' \
  "MOVE alphanumeric TO x" "                         "
at_xfail=no
(
  $as_echo "67. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       01 Y-A           PIC A.
       01 Y-X           PIC X.
       01 Y-BX          PIC BX.
       01 Y-9           PIC 9.
       01 Y-09          PIC 09.
       PROCEDURE        DIVISION.
           MOVE X TO Y-A.
           MOVE X TO Y-X.
           MOVE X TO Y-BX.
           MOVE X TO Y-9.
           MOVE X TO Y-09.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/move.at:138: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "move.at:138"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/move.at:138"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_67
#AT_START_68
at_fn_group_banner 68 'move.at:142' \
  "MOVE alphanumeric-edited TO x" "                  "
at_xfail=no
(
  $as_echo "68. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC BX.
       01 Y-A           PIC A.
       01 Y-X           PIC X.
       01 Y-BX          PIC BX.
       01 Y-9           PIC 9.
       01 Y-09          PIC 09.
       PROCEDURE        DIVISION.
           MOVE X TO Y-A.
           MOVE X TO Y-X.
           MOVE X TO Y-BX.
           MOVE X TO Y-9.
           MOVE X TO Y-09.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/move.at:164: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "move.at:164"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:16: Error: Invalid MOVE statement
prog.cob:17: Error: Invalid MOVE statement
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/move.at:164"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_68
#AT_START_69
at_fn_group_banner 69 'move.at:171' \
  "MOVE numeric (integer) TO x" "                    "
at_xfail=no
(
  $as_echo "69. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC 9.
       01 Y-A           PIC A.
       01 Y-X           PIC X.
       01 Y-BX          PIC BX.
       01 Y-9           PIC 9.
       01 Y-09          PIC 09.
       PROCEDURE        DIVISION.
           MOVE X TO Y-A.
           MOVE X TO Y-X.
           MOVE X TO Y-BX.
           MOVE X TO Y-9.
           MOVE X TO Y-09.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/move.at:193: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "move.at:193"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:13: Error: Invalid MOVE statement
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/move.at:193"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_69
#AT_START_70
at_fn_group_banner 70 'move.at:199' \
  "MOVE numeric (non-integer) TO x" "                "
at_xfail=no
(
  $as_echo "70. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC 9V9.
       01 Y-A           PIC A.
       01 Y-X           PIC X.
       01 Y-BX          PIC BX.
       01 Y-9           PIC 9.
       01 Y-09          PIC 09.
       PROCEDURE        DIVISION.
           MOVE X TO Y-A.
           MOVE X TO Y-X.
           MOVE X TO Y-BX.
           MOVE X TO Y-9.
           MOVE X TO Y-09.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/move.at:221: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "move.at:221"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:13: Error: Invalid MOVE statement
prog.cob:14: Error: Invalid MOVE statement
prog.cob:15: Error: Invalid MOVE statement
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/move.at:221"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_70
#AT_START_71
at_fn_group_banner 71 'move.at:229' \
  "MOVE numeric-edited TO x" "                       "
at_xfail=no
(
  $as_echo "71. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC 09.
       01 Y-A           PIC A.
       01 Y-X           PIC X.
       01 Y-BX          PIC BX.
       01 Y-9           PIC 9.
       01 Y-09          PIC 09.
       PROCEDURE        DIVISION.
           MOVE X TO Y-A.
           MOVE X TO Y-X.
           MOVE X TO Y-BX.
           MOVE X TO Y-9.
           MOVE X TO Y-09.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/move.at:251: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "move.at:251"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:13: Error: Invalid MOVE statement
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/move.at:251"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_71
#AT_START_72
at_fn_group_banner 72 'move.at:263' \
  "Operands must be groups" "                        "
at_xfail=no
(
  $as_echo "72. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G-1.
         02 X           PIC X.
       01 G-2.
         02 Y           PIC X.
       PROCEDURE        DIVISION.
           MOVE CORR X TO G-1.
           MOVE CORR G-1 TO X.
           MOVE CORR G-1(1:1) TO G-2.
           MOVE CORR G-1 TO G-2(1:1).
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/move.at:282: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "move.at:282"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:11: Error: 'X' is not group name
prog.cob:12: Error: 'X' is not group name
prog.cob:13: Error: 'G-1 (1:1)' is not group name
prog.cob:14: Error: 'G-2 (1:1)' is not group name
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/move.at:282"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_72
#AT_START_73
at_fn_group_banner 73 'move.at:295' \
  "MOVE: misc" "                                     "
at_xfail=no
(
  $as_echo "73. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 INVALID-ITEM.
       01 I             PIC 9(3).
       PROCEDURE        DIVISION.
           MOVE 1 TO INVALID-ITEM.
           MOVE SPACE TO I(1:2).
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/move.at:310: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "move.at:310"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:6: Error: PICTURE clause required for 'INVALID-ITEM'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/move.at:310"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_73
#AT_START_74
at_fn_group_banner 74 'multiply.at:28' \
  "Category check of Format 1" "                     "
at_xfail=no
(
  $as_echo "74. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-X           PIC X.
       01 X-9           PIC 9.
       01 X-09          PIC 09.
       PROCEDURE        DIVISION.
           MULTIPLY 123  BY 456
           END-MULTIPLY.
           MULTIPLY "a"  BY "b"
           END-MULTIPLY.
           MULTIPLY X-X  BY X-9
           END-MULTIPLY.
           MULTIPLY X-9  BY X-09
           END-MULTIPLY.
           MULTIPLY X-09 BY X-X
           END-MULTIPLY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/multiply.at:52: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "multiply.at:52"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:10: Error: '456' is not a numeric name
prog.cob:12: Error: '\"a\"' is not a numeric value
prog.cob:12: Error: '\"b\"' is not a numeric name
prog.cob:14: Error: 'X-X' is not a numeric value
prog.cob:16: Error: 'X-09' is not a numeric name
prog.cob:18: Error: 'X-09' is not a numeric value
prog.cob:18: Error: 'X-X' is not a numeric name
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/multiply.at:52"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_74
#AT_START_75
at_fn_group_banner 75 'multiply.at:66' \
  "Category check of Format 2" "                     "
at_xfail=no
(
  $as_echo "75. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-X           PIC X.
       01 X-9           PIC 9.
       01 X-09          PIC 09.
       PROCEDURE        DIVISION.
           MULTIPLY 123  BY 456  GIVING 789
           END-MULTIPLY.
           MULTIPLY "a"  BY "b"  GIVING "c"
           END-MULTIPLY.
           MULTIPLY X-X  BY X-9  GIVING X-09
           END-MULTIPLY.
           MULTIPLY X-9  BY X-09 GIVING X-X
           END-MULTIPLY.
           MULTIPLY X-09 BY X-X  GIVING X-9
           END-MULTIPLY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/multiply.at:90: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "multiply.at:90"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:10: Error: '789' is not numeric or numeric-edited name
prog.cob:12: Error: '\"a\"' is not a numeric value
prog.cob:12: Error: '\"b\"' is not a numeric value
prog.cob:12: Error: '\"c\"' is not numeric or numeric-edited name
prog.cob:14: Error: 'X-X' is not a numeric value
prog.cob:16: Error: 'X-09' is not a numeric value
prog.cob:16: Error: 'X-X' is not numeric or numeric-edited name
prog.cob:18: Error: 'X-09' is not a numeric value
prog.cob:18: Error: 'X-X' is not a numeric value
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/multiply.at:90"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_75
#AT_START_76
at_fn_group_banner 76 'multiply.at:106' \
  "Category check of literals" "                     "
at_xfail=no
(
  $as_echo "76. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC 9.
       PROCEDURE        DIVISION.
           MULTIPLY 123  BY X
           END-MULTIPLY.
           MULTIPLY "a"  BY X
           END-MULTIPLY.
           MULTIPLY 123  BY 456 GIVING X
           END-MULTIPLY.
           MULTIPLY "a"  BY "b" GIVING X
           END-MULTIPLY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/multiply.at:126: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "multiply.at:126"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:10: Error: '\"a\"' is not a numeric value
prog.cob:14: Error: '\"a\"' is not a numeric value
prog.cob:14: Error: '\"b\"' is not a numeric value
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/multiply.at:126"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_76
#AT_START_77
at_fn_group_banner 77 'set.at:24' \
  "SET: misc" "                                      "
at_xfail=no
(
  $as_echo "77. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       PROCEDURE        DIVISION.
           SET ADDRESS OF X TO NULL.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/set.at:37: \${COMPILE_ONLY} prog.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "set.at:37"
( $at_check_trace; ${COMPILE_ONLY} prog.cob
) >>"$at_stdout" 2>>"$at_stderr"
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:8: Error: The address of 'X' cannot be changed
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/set.at:37"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_77
