On Mon Apr 09 15:40:47 2018, khw wrote:
Show quoted text> Attached is a program that reproduces a bug wherein the generated code
> fails to account for some of the input.
>
> In particular, the input includes a line 'ccc=107', but there is no
> rule generated for that.
>
> This example does not compile, because for clarity I omitted the
> function that converts the returned strings into suitable C
> identifiers.
>
> Using the default strategy also fails, but the narrow strategy does
> cause a rule for 107 to be emitted. But for that strategy, I notice
> that no rule for age=v100 gets omitted.
I believe that below is a complete list of the missing rules. All these have digits in their strings, and I didn't see any missing one that didn't have digits (though I could have missed some).
age=v100
age=v20
age=v30
age=v40
age=v50
age=v60
age=v70
age=v80
age=v90
canonicalcombiningclass=ccc10
canonicalcombiningclass=ccc103
canonicalcombiningclass=ccc107
canonicalcombiningclass=ccc130
canonicalcombiningclass=ccc20
canonicalcombiningclass=ccc30
ccc=10
ccc=103
ccc=130
ccc=20
ccc=30
in=v100
in=v20
in=v30
in=v40
in=v50
in=v60
in=v70
in=v80
in=v90
numericvalue=0
numericvalue=10
numericvalue=100
numericvalue=1000
numericvalue=10000
numericvalue=100000
numericvalue=1/10
numericvalue=1/20
numericvalue=1/40
numericvalue=20
numericvalue=200
numericvalue=2000
numericvalue=20000
numericvalue=200000
numericvalue=216000
numericvalue=30
numericvalue=300
numericvalue=3000
numericvalue=30000
numericvalue=300000
numericvalue=3/20
numericvalue=3/80
numericvalue=40
numericvalue=400
numericvalue=4000
numericvalue=40000
numericvalue=400000
numericvalue=432000
numericvalue=500
numericvalue=5000
numericvalue=50000
numericvalue=500000
numericvalue=600
numericvalue=6000
numericvalue=60000
numericvalue=600000
numericvalue=700
numericvalue=7000
numericvalue=70000
numericvalue=700000
numericvalue=800
numericvalue=8000
numericvalue=80000
numericvalue=800000
numericvalue=900
numericvalue=9000
numericvalue=90000
numericvalue=900000
nv=0
nv=10
nv=100
nv=1000
nv=10000
nv=100000
nv=1/10
nv=1/160
nv=1/20
nv=1/40
nv=20
nv=200
nv=2000
nv=20000
nv=200000
nv=216000
nv=30
nv=300
nv=3000
nv=30000
nv=300000
nv=3/20
nv=3/80
nv=40
nv=400
nv=4000
nv=40000
nv=400000
nv=432000
nv=500
nv=5000
nv=50000
nv=500000
nv=600
nv=6000
nv=60000
nv=600000
nv=700
nv=7000
nv=70000
nv=700000
nv=800
nv=8000
nv=80000
nv=800000
nv=900
nv=9000
nv=90000
nv=900000