From 2f49fa38efddc38887f565e489ab38acd3aff4bb Mon Sep 17 00:00:00 2001 From: Stefan O'Rear Date: Thu, 22 Dec 2011 23:25:27 -0800 Subject: [PATCH] Add :InFoo block shortcuts --- lib/UCD.cs | 17 +++++++++++------ t/spectest.data | 1 + 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/UCD.cs b/lib/UCD.cs index 9773e7e2..894cbe74 100644 --- a/lib/UCD.cs +++ b/lib/UCD.cs @@ -42,9 +42,13 @@ class LimitedProperty : Property { public Property Proxify(bool neg, string prefix) { string[][] nvalues = new string[values.Length][]; + prefix = prefix.Substring(prefix.IndexOf('+')+1); for (int i = 0; i < nvalues.Length; i++) { //Console.WriteLine("{0}/{1}", values[i][0], prefix); - bool ok = values[i][0].Substring(0, prefix.Length) == prefix; + bool ok = (prefix.Length <= 1) ? + values[i][0].Substring(0, prefix.Length) == prefix : + StringProperty.Loosen(values[i][0]) == + StringProperty.Loosen(prefix); nvalues[i] = (neg ? !ok : ok) ? YES : NO; } @@ -382,10 +386,11 @@ static class DataSet { //if (Trace) Console.WriteLine("Alias {0},{1} -> {2}", tbl, canon, Kernel.JoinS(", ", aset)); val_aliases[Prod.C(tbl, canon)] = aset.ToArray(); - if (tbl == "sc" || tbl == "gc") { + if (tbl == "sc" || tbl == "gc" || tbl == "blk") { foreach (string a in aset) - aliases[StringProperty.Loosen(a)] = canon; - proxy_aliases[canon] = tbl == "sc" ? "Script" : tbl; + aliases[(tbl == "blk" ? "IN" : "") + + StringProperty.Loosen(a)] = tbl + "+" + canon; + proxy_aliases[tbl+"+"+canon] = tbl == "sc" ? "Script" : tbl; } aset.Clear(); } @@ -533,10 +538,10 @@ static class DataSet { if (name == "ASSIGNED") return cache[name] = ((LimitedProperty) GetTable("gc")) - .Proxify(true, "Cn"); + .Proxify(true, "+Cn"); if (name == "ANY") return cache[name] = ((LimitedProperty) GetTable("gc")) - .Proxify(false, ""); + .Proxify(false, "+"); if (name == "ASCII") return cache[name] = new LimitedProperty( new int[] { 0, 1, 128, 0 }, diff --git a/t/spectest.data b/t/spectest.data index b65fe3ba..7b6b861b 100644 --- a/t/spectest.data +++ b/t/spectest.data @@ -213,6 +213,7 @@ S05-grammar/protoregex.t S05-grammar/signatures.t S05-interpolation/lexicals.t S05-mass/named-chars.t +S05-mass/properties-block.t S05-mass/properties-general.t S05-mass/properties-script.t S05-mass/recursive.t