# Exercising Bison Grammar Sets. -*- Autotest -*-
-# Copyright 2001, 2002 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
+
# AT_EXTRACT_SETS(INPUT, OUTPUT)
# ------------------------------
# Extract the information about the grammar sets from a bison
[AT_DATA([extract.sed],
[[#n
/^NULLABLE$/ {
- :nullable
+ :null
p
n
- /^[ ]*$/! b nullable
+ /^[ ]*$/ !b null
}
/^FIRSTS$/ {
:firsts
p
n
- /^[ ]*$/! b firsts
+ /^[ ]*$/ !b firsts
}
/^FDERIVES$/ {
- :fderives
+ :fderiv
p
n
- /^[ ]*$/! b fderives
+ /^[ ]*$/ !b fderiv
}
/^DERIVES$/ {
- :derives
+ :deriv
p
n
- /^[ ]*$/! b derives
+ /^[ ]*$/ !b deriv
}
]])
AT_CHECK([sed -f extract.sed $1], 0, [stdout])
e: yes
FIRSTS
$axiom firsts
- 4 ($axiom)
- 5 (e)
+ $axiom
+ e
e firsts
- 5 (e)
+ e
FDERIVES
$axiom derives
0: e $
AT_DATA([input.y],
[[%%
-a: b
-b: c
-c: d
-d: e
-e: f
-f: g
-g: h
-h: 'h'
+a: b;
+b: c;
+c: d;
+d: e;
+e: f;
+f: g;
+g: h;
+h: 'h';
]])
AT_CHECK([[bison --trace input.y]], [], [], [stderr])
-AT_CHECK([[sed -n 's/[ ]*$//;/^TC: Output BEGIN/,/^TC: Output END/p' stderr]], [],
-[[TC: Output BEGIN
+AT_CHECK([[sed -n 's/[ ]*$//;/^RTC: Firsts Output BEGIN/,/^RTC: Firsts Output END/p' stderr]], [],
+[[RTC: Firsts Output BEGIN
012345678
.---------.
- 0| 11111111|
- 1| 1111111|
- 2| 111111|
- 3| 11111|
- 4| 1111|
- 5| 111|
- 6| 11|
- 7| 1|
- 8| |
+ 0|111111111|
+ 1| 11111111|
+ 2| 1111111|
+ 3| 111111|
+ 4| 11111|
+ 5| 1111|
+ 6| 111|
+ 7| 11|
+ 8| 1|
`---------'
-TC: Output END
+RTC: Firsts Output END
]])
AT_CLEANUP
exp: no
FIRSTS
$axiom firsts
- 10 ($axiom)
- 11 (exp)
+ $axiom
+ exp
exp firsts
- 11 (exp)
+ exp
FDERIVES
$axiom derives
0: exp $