# Generate one or more C array initializers to encode simple tree structures
# in a compact format.
#
-# Each nonempty line of the input file is either an option specification
-# or # a tree specification. An option specification (described later)
-# begins with an @ character. Other lines specify tree nodes.
+# Each nonempty line of the input file is either a comment, an option
+# specification or a tree specification. Each line is distinguished by
+# its first character. A # character introduces a comment, an @ character
+# introduces an option specification (described later), and all other
+# nonempty lines are tree nodes.
#
# The first field of a tree specification must be a valid C identifier,
# optionally followed by a comma. The identifiers used on non-leaf nodes
indent_stack[0] = 0;
}
+# Comments
+NF == 0 { next }
+$0 ~ /^#/ { next }
+
# Options
sub(/^@/, "", $0) {
if (NF == 1) {
next
}
-NF == 0 { next }
{ indent = index($0, $1) - 1 }
indent > 0 {
AT_KEYWORDS([gen-tree awk script scripts])
AT_DATA([tree.def],
-[[ROOT0
+[[# comment
+ROOT0
r0a, r0a_OFFSET
r0b, r0b_OFFSET
r0c
r0e, r0e_OFFSET
r0f
r0g
+# comment
ROOT1
r1a, r1a_OFFSET
r1b, r1b_OFFSET
r1e
r1b
r1e
+# comment
]])
AT_CHECK([$AWK -f "$builddir/scripts/gen-tree.awk" <tree.def >tree.h])
return 0;
}
]])
-cp tree.def expout
+sed '/^#/d' tree.def >expout
AT_CHECK([$CC -o test0$EXEEXT test0.c && ./test0$EXEEXT], [0], [expout])
AT_CLEANUP